
/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */
/* WARNING: Unknown calling convention */

int fts3UpdateMethod(sqlite3_vtab *pVtab,int nArg,sqlite3_value **apVal,sqlite_int64 *pRowid)

{
  sqlite3_stmt *psVar1;
  ushort uVar2;
  void *pvVar3;
  longlong lVar4;
  sqlite3_stmt *pStmt_00;
  Op *pOVar5;
  char cVar6;
  sqlite3_int64 *piDocid;
  sqlite3_value *psVar7;
  int iVar8;
  sqlite3_blob *pBlob;
  char *pcVar9;
  Mem *pMVar10;
  uint uVar11;
  Vdbe *pVVar12;
  int iVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  sqlite3_module *psVar18;
  sqlite3_stmt *psVar19;
  int iVar20;
  char *pcVar21;
  uint uVar22;
  u8 in_DL;
  u8 enc;
  u8 enc_00;
  u8 enc_01;
  u8 enc_02;
  u8 enc_03;
  u8 enc_04;
  void *p;
  sqlite3 *psVar23;
  int extraout_EDX;
  int extraout_EDX_00;
  int iVar24;
  u8 *puVar25;
  u8 *pBuf;
  sqlite3_stmt *psVar26;
  uint uVar27;
  VdbeCursor **ppVVar28;
  Fts3MultiSegReader *pFVar29;
  int in_GS_OFFSET;
  bool bVar30;
  byte bVar31;
  i64 iVar32;
  i64 iVar33;
  sqlite_int64 sVar34;
  int *piVar35;
  sqlite3_stmt *psVar36;
  char *in_stack_fffffebc;
  u32 *aSzDel;
  Fts3MultiSegReader *in_stack_fffffec8;
  u8 *puVar37;
  sqlite3_module *psVar38;
  sqlite3_stmt *local_12c;
  int local_128;
  sqlite3_module *local_124;
  sqlite3_stmt *local_114;
  int local_110;
  uint local_10c;
  sqlite3_stmt *local_108;
  uint local_104;
  uint local_100;
  sqlite3_stmt *local_f0;
  uint local_ec;
  uint local_e8;
  uint local_e4;
  int local_e0;
  uint local_dc;
  int local_d8;
  uint local_d0;
  uint local_b4;
  sqlite3 *local_b0;
  int rc;
  int nChng;
  sqlite3_stmt *pAllLangid;
  sqlite3_stmt *pStmt_3;
  sqlite3_tokenizer_cursor *pT;
  i64 iDocid;
  i64 iCol;
  i64 iVal;
  int rc_2;
  Fts3Table *local_64;
  int local_60;
  int local_5c;
  sqlite3_stmt *pStmt;
  Vdbe *local_54;
  Parse *local_4c;
  char *local_48;
  VdbeCursor **local_30;
  Mem *local_2c;
  Op *local_28;
  int local_24;
  int local_20;
  
  bVar31 = 0;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  rc = 0;
  nChng = 0;
  if (1 < nArg) {
    if ((aType_23891[(*apVal)->flags & 0x1f] == '\x05') &&
       (psVar7 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 2)],
       aType_23891[psVar7->flags & 0x1f] != '\x05')) {
      pcVar9 = (char *)sqlite3ValueText(psVar7,in_DL);
      iVar8 = sqlite3ValueBytes(psVar7,enc);
      if (pcVar9 == (char *)0x0) {
        local_f0 = (sqlite3_stmt *)0x7;
        pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;
        goto LAB_0013ba71;
      }
      if (iVar8 == 8) {
        iVar8 = sqlite3_strnicmp(pcVar9,"optimize",8);
        if (iVar8 == 0) {
          local_f0 = (sqlite3_stmt *)fts3DoOptimize((Fts3Table *)pVtab,0);
          pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;
          goto LAB_0013ba71;
        }
LAB_0013be5a:
        iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);
        if (iVar8 == 0) {
LAB_0013be74:
          cVar6 = pcVar9[6];
          pcVar9 = pcVar9 + 6;
          iVar8 = 0;
          if ((byte)(cVar6 - 0x30U) < 10) {
            do {
              pcVar9 = pcVar9 + 1;
              iVar8 = cVar6 + -0x30 + iVar8 * 10;
              cVar6 = *pcVar9;
              if (9 < (byte)(cVar6 - 0x30U)) goto LAB_0013beb1;
            } while (iVar8 < 0xccccccb);
          }
          else {
LAB_0013beb1:
            if (cVar6 == ',') {
              cVar6 = pcVar9[1];
              if ((cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)) {
                iVar20 = 0;
                do {
                  pcVar9 = pcVar9 + 1;
                  iVar20 = cVar6 + -0x30 + iVar20 * 10;
                  cVar6 = *pcVar9;
                  if (9 < (byte)(cVar6 - 0x30U)) break;
                } while (iVar20 < 0xccccccb);
                if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;
              }
            }
            else if (cVar6 == '\0') {
              iVar20 = 8;
LAB_0013bf06:
              pStmt = (sqlite3_stmt *)0x0;
              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {
                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,
                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"
                           ,pVtab[1].nRef,pVtab[1].zErrMsg);
                if (pStmt == (sqlite3_stmt *)0x0) {
                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;
                  goto LAB_0013bf22;
                }
              }
              else {
LAB_0013bf22:
                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);
              }
              sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);
              pVtab[0x14].zErrMsg = (char *)0x0;
              pBlob = (sqlite3_blob *)0x0;
              local_f0 = pStmt;
              goto LAB_0013ba71;
            }
          }
        }
LAB_0013ba5f:
        local_f0 = (sqlite3_stmt *)&DAT_00000001;
        pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;
        goto LAB_0013ba71;
      }
      if (iVar8 == 7) {
        iVar8 = sqlite3_strnicmp(pcVar9,"rebuild",7);
        if (iVar8 != 0) goto LAB_0013be5a;
        local_f0 = (sqlite3_stmt *)fts3DeleteAll((Fts3Table *)pVtab,0);
        rc_2 = (int)local_f0;
        if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;
        pStmt = (sqlite3_stmt *)0x0;
        pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);
        if (pcVar9 == (char *)0x0) goto LAB_0013d10b;
        rc_2 = sqlite3LockAndPrepare
                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt,
                          (sqlite3_stmt **)0x0,(char **)pRowid);
        sqlite3_free(pcVar9);
        if (rc_2 == 0) {
          psVar38 = pVtab[2].pModule;
          iVar8 = sqlite3_initialize();
          if (iVar8 != 0) {
LAB_0013d10b:
            rc_2 = 7;
            goto LAB_0013d116;
          }
          local_114 = (sqlite3_stmt *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid));
          if (local_114 == (sqlite3_stmt *)0x0) goto LAB_0013d10b;
          psVar19 = local_114;
          memset(local_114,0,(int)((int)&psVar38->iVersion + 1) * 0xc);
          iVar8 = (int)pVtab[2].pModule * 4 + 4;
          local_114 = local_114 + iVar8;
          local_108 = local_114 + iVar8;
          local_f0 = (sqlite3_stmt *)0x0;
          while ((rc_2 == 0 && (iVar8 = sqlite3_step(pStmt), psVar26 = pStmt, iVar8 == 100))) {
            psVar38 = (sqlite3_module *)0x0;
            iVar8 = extraout_EDX;
            if (pVtab[3].zErrMsg != (char *)0x0) {
              pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);
              iVar32 = sqlite3VdbeIntValue(pMVar10);
              psVar38 = (sqlite3_module *)iVar32;
              columnMallocFailure(psVar26);
              iVar8 = extraout_EDX_00;
            }
            sVar34 = sqlite3_column_int64(pStmt,iVar8);
            iVar20 = (int)((ulonglong)sVar34 >> 0x20);
            lVar4._0_4_ = pVtab[0x16].nRef;
            lVar4._4_4_ = pVtab[0x16].zErrMsg;
            uVar11 = (uint)((uint)sVar34 < (uint)pVtab[0x16].nRef);
            iVar8 = iVar20 - (int)pVtab[0x16].zErrMsg;
            if (((((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==
                   (int)(iVar8 - uVar11) < 0) &&
                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))
                 )) && ((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||
               (rc_2 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), rc_2 == 0)) {
              pVtab[0x16].nRef = (int)sVar34;
              pVtab[0x16].zErrMsg = (char *)(int)((ulonglong)sVar34 >> 0x20);
              pVtab[0x17].nRef = 0;
              pVtab[0x17].pModule = psVar38;
              rc_2 = 0;
            }
            memset(psVar19,0,(int)pVtab[2].pModule * 4 + 4);
            if (rc_2 == 0) {
              psVar18 = pVtab[2].pModule;
              if (0 < (int)psVar18) {
                psVar26 = (sqlite3_stmt *)0x0;
                do {
                  psVar36 = pStmt;
                  psVar1 = psVar26 + 1;
                  if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {
                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);
                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);
                    columnMallocFailure(psVar36);
                    psVar36 = psVar19 + (int)psVar26 * 4;
                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,
                                               (u32 *)psVar36);
                    pStmt_00 = pStmt;
                    pMVar10 = columnMem(psVar26,(int)psVar36);
                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);
                    columnMallocFailure(pStmt_00);
                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =
                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;
                    if (rc_2 != 0) goto LAB_0013d062;
                    psVar18 = pVtab[2].pModule;
                  }
                  psVar26 = psVar1;
                } while ((int)psVar1 < (int)psVar18);
              }
              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') goto LAB_0013d0c3;
LAB_0013d09a:
              local_f0 = (sqlite3_stmt *)((int)local_f0 + 1);
              if (-1 < (int)psVar18) {
                iVar8 = 0;
                do {
                  *(int *)(local_114 + iVar8 * 4) =
                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);
                  iVar8 = iVar8 + 1;
                } while (iVar8 <= (int)pVtab[2].pModule);
              }
            }
            else {
LAB_0013d062:
              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {
LAB_0013d0c3:
                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);
                if (rc_2 == 0) {
                  psVar18 = pVtab[2].pModule;
                  goto LAB_0013d09a;
                }
              }
              sqlite3_finalize(pStmt);
              pStmt = (sqlite3_stmt *)0x0;
            }
          }
        }
        else {
LAB_0013d116:
          local_108 = (sqlite3_stmt *)0x0;
          local_114 = (sqlite3_stmt *)0x0;
          psVar19 = (sqlite3_stmt *)0x0;
          local_f0 = (sqlite3_stmt *)0x0;
        }
        if ((char)pVtab[0x13].nRef != '\0') {
          fts3UpdateDocTotals(&rc_2,(Fts3Table *)pVtab,(u32 *)local_114,(u32 *)local_108,
                              (int)local_f0);
        }
        sqlite3_free(psVar19);
        if ((pStmt != (sqlite3_stmt *)0x0) && (iVar8 = sqlite3_finalize(pStmt), rc_2 == 0)) {
          rc_2 = iVar8;
        }
        local_f0 = (sqlite3_stmt *)rc_2;
      }
      else {
        if (iVar8 != 0xf) {
          if (6 < iVar8) {
            iVar20 = sqlite3_strnicmp(pcVar9,"merge=",6);
            if (iVar20 == 0) goto LAB_0013be74;
            if (10 < iVar8) goto LAB_0013c124;
          }
          goto LAB_0013ba5f;
        }
        iVar8 = sqlite3_strnicmp(pcVar9,"integrity-check",0xf);
        if (iVar8 == 0) {
          pAllLangid = (sqlite3_stmt *)0x0;
          local_f0 = (sqlite3_stmt *)
                     fts3SqlStmt((Fts3Table *)pVtab,0x1b,&pAllLangid,(sqlite3_value **)pRowid);
          if (local_f0 == (sqlite3_stmt *)0x0) {
            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x17].pModule,
                               CONCAT44(in_stack_fffffec8,pRowid));
            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x15].pModule,
                               CONCAT44(in_stack_fffffec8,pRowid));
            local_d0 = 0;
            local_b4 = 0;
            do {
              do {
                iVar8 = sqlite3_step(pAllLangid);
                psVar19 = pAllLangid;
                if (iVar8 != 100) {
                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);
                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;
                  iVar8 = (pVtab[3].pModule)->iVersion;
                  pStmt_3 = (sqlite3_stmt *)0x0;
                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);
                  if (pcVar9 != (char *)0x0) {
                    local_f0 = (sqlite3_stmt *)
                               sqlite3LockAndPrepare
                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3
                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);
                    sqlite3_free(pcVar9);
                    local_ec = 0;
                    local_e8 = 0;
                    psVar19 = local_f0;
                    psVar26 = pStmt_3;
                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;
                    goto LAB_0013d234;
                  }
                  sqlite3_finalize(pStmt_3);
                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;
                  local_f0 = (sqlite3_stmt *)0x7;
                  goto LAB_0013ba71;
                }
                pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);
                iVar32 = sqlite3VdbeIntValue(pMVar10);
                uVar11 = (uint)iVar32;
                iVar8 = 0x13c3a3;
                columnMallocFailure(psVar19);
              } while ((int)pVtab[0x15].pModule < 1);
              local_114 = (sqlite3_stmt *)0x0;
              local_110 = 0;
              do {
                rc_2 = 0;
                local_64 = (Fts3Table *)0x0;
                local_60 = 0;
                pFVar29 = (Fts3MultiSegReader *)&pStmt;
                for (iVar20 = 0xe; iVar20 != 0; iVar20 = iVar20 + -1) {
                  pFVar29->apSegment = (Fts3SegReader **)0x0;
                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);
                }
                local_5c = 0x13;
                pFVar29 = (Fts3MultiSegReader *)&pStmt;
                local_12c = (sqlite3_stmt *)
                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,
                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt);
                if ((local_12c == (sqlite3_stmt *)0x0) &&
                   (local_4c = (Parse *)&rc_2,
                   local_12c = (sqlite3_stmt *)
                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),
                   local_12c == (sqlite3_stmt *)0x0)) {
                  local_104 = 0;
                  local_100 = 0;
LAB_0013c8a0:
                  iVar8 = 0x13c8ad;
                  local_12c = (sqlite3_stmt *)
                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);
                  pOVar5 = local_28;
                  if (local_12c == (sqlite3_stmt *)0x64) {
                    iDocid._0_4_ = (sqlite3 *)0x0;
                    iDocid._4_4_ = 0;
                    iCol._0_4_ = 0;
                    puVar25 = &local_28->opcode + local_24;
                    iCol._4_4_ = 0;
                    puVar37 = puVar25;
                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);
                    pRowid = (sqlite_int64 *)0x0;
                    pBuf = &pOVar5->opcode + iVar8;
                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;
                    if (pBuf < puVar25) {
                      while( true ) {
                        iVal._0_4_ = (uint)*pBuf;
                        if ((char)*pBuf < '\0') {
                          uVar14 = (uint)iVal & 0x7f;
                          uVar27 = (uint)pBuf[1] << 7;
                          iVal._0_4_ = uVar27 | uVar14;
                          if ((uVar27 & 0x4000) == 0) {
                            iVar8 = 2;
                            iVal._4_4_ = 0;
                          }
                          else {
                            uVar14 = uVar27 & 0x3fff | uVar14;
                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;
                            iVal._0_4_ = uVar14 | uVar27;
                            if ((uVar27 & 0x200000) == 0) {
                              iVar8 = 3;
                              iVal._4_4_ = 0;
                            }
                            else {
                              uVar14 = uVar14 | uVar27 & 0x1fffff;
                              uVar27 = (uint)pBuf[3] << 0x15;
                              iVal._0_4_ = uVar14 | uVar27;
                              if ((uVar27 & 0x10000000) == 0) {
                                iVar8 = 4;
                                iVal._4_4_ = 0;
                              }
                              else {
                                uVar14 = uVar14 | uVar27 & 0xfffffff;
                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;
                                uVar15 = uVar27 * 0x10000000;
                                iVal._0_4_ = uVar14 + uVar15;
                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);
                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {
                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;
                                  if ((char)pBuf[5] < '\0') {
                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;
                                    if ((char)pBuf[6] < '\0') {
                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;
                                      if ((char)pBuf[7] < '\0') {
                                        iVal._4_4_ = iVal._4_4_ +
                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;
                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {
                                          piVar35 = (int *)(pBuf + 10);
                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;
                                        }
                                        else {
                                          piVar35 = (int *)(pBuf + 9);
                                        }
                                      }
                                      else {
                                        piVar35 = (int *)(pBuf + 8);
                                      }
                                    }
                                    else {
                                      piVar35 = (int *)(pBuf + 7);
                                    }
                                  }
                                  else {
                                    piVar35 = (int *)(pBuf + 6);
                                  }
                                }
                                else {
                                  piVar35 = (int *)(pBuf + 5);
                                }
                                iVar8 = (int)piVar35 - (int)pBuf;
                              }
                            }
                          }
                        }
                        else {
                          iVar8 = 1;
                          iVal._4_4_ = 0;
                        }
                        pBuf = pBuf + iVar8;
                        if (puVar37 <= pBuf) break;
                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {
                          iCol._0_4_ = 0;
                          iCol._4_4_ = 0;
                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {
                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);
                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);
                            iDocid._0_4_ = (sqlite3 *)
                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));
                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;
                          }
                          else {
                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);
                          }
                          pBuf = pBuf + iVar8;
                          if (puVar37 <= pBuf) break;
                          pRowid = (sqlite_int64 *)0x0;
                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;
                        }
                        else {
                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);
                          pRowid = (sqlite_int64 *)
                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));
                          in_stack_fffffec8 =
                               (Fts3MultiSegReader *)
                               ((int)in_stack_fffffec8 +
                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));
                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;
                          iVar8 = iDocid._4_4_ +
                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +
                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +
                                  ((int)uVar11 >> 0x1f) +
                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);
                          uVar14 = uVar27 * 9 + (int)local_114;
                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +
                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +
                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);
                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;
                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +
                                  iVar8 + ((int)(uint)iCol >> 0x1f) +
                                  (uint)CARRY4(uVar14,(uint)iCol) +
                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);
                          uVar14 = (int)pRowid + uVar27 * 9;
                          uVar27 = ((int)pRowid >> 0x1f) +
                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +
                                   (uint)CARRY4(uVar27,uVar27 * 8) +
                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);
                          if (0 < (int)local_2c) {
                            ppVVar28 = local_30;
                            do {
                              uVar22 = (uint)*(char *)ppVVar28;
                              uVar16 = uVar14 * 8;
                              uVar15 = uVar14 >> 0x1d;
                              uVar17 = uVar16 + uVar22;
                              bVar30 = CARRY4(uVar14,uVar17);
                              uVar14 = uVar14 + uVar17;
                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +
                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;
                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);
                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);
                          }
                          local_104 = local_104 ^ uVar14;
                          local_100 = local_100 ^ uVar27;
                        }
                      }
                    }
                    goto LAB_0013c8a0;
                  }
                  local_d0 = local_d0 ^ local_104;
                  local_b4 = local_b4 ^ local_100;
                }
                psVar19 = pStmt;
                if (0 < (int)local_54) {
                  iVar20 = 0;
                  pVVar12 = local_54;
                  do {
                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {
LAB_0013c4bb:
                      iVar20 = iVar20 + 1;
                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;
                    }
                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&
                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {
                      if (sqlite3Config.bMemstat == 0) {
                        (*sqlite3Config.m.xFree)(psVar23);
                      }
                      else {
                        if (mem0.mutex != (sqlite3_mutex *)0x0) {
                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);
                        }
                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);
                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;
                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;
                        (*sqlite3Config.m.xFree)(psVar23);
                        pRowid = (sqlite_int64 *)psVar23;
                        if (mem0.mutex != (sqlite3_mutex *)0x0) {
                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);
                          pRowid = (sqlite_int64 *)psVar23;
                        }
                      }
                    }
                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&
                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {
                      if (sqlite3Config.bMemstat == 0) {
                        (*sqlite3Config.m.xFree)(psVar23);
                      }
                      else {
                        if (mem0.mutex != (sqlite3_mutex *)0x0) {
                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);
                        }
                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);
                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;
                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;
                        (*sqlite3Config.m.xFree)(psVar23);
                        pRowid = (sqlite_int64 *)psVar23;
                        if (mem0.mutex != (sqlite3_mutex *)0x0) {
                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);
                          pRowid = (sqlite_int64 *)psVar23;
                        }
                      }
                    }
                    p = *(void **)((int)pvVar3 + 0x34);
                    if (p != (void *)0x0) {
                      pRowid = *(sqlite_int64 **)((int)p + 0x14);
                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {
                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);
                      }
                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));
                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {
                        if (sqlite3Config.bMemstat == 0) {
                          (*sqlite3Config.m.xFree)(p);
                        }
                        else {
                          if (mem0.mutex != (sqlite3_mutex *)0x0) {
                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);
                          }
                          iVar13 = (*sqlite3Config.m.xSize)(p);
                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;
                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;
                          (*sqlite3Config.m.xFree)(p);
                          if (mem0.mutex != (sqlite3_mutex *)0x0) {
                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);
                          }
                        }
                      }
                      else {
                        iVar8 = 0x13c785;
                        measureAllocationSize((sqlite3 *)pRowid,p);
                      }
                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {
                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);
                      }
                    }
                    if (sqlite3Config.bMemstat != 0) {
                      if (mem0.mutex != (sqlite3_mutex *)0x0) {
                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);
                      }
                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);
                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;
                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;
                      (*sqlite3Config.m.xFree)(pvVar3);
                      pVVar12 = local_54;
                      psVar19 = pStmt;
                      if (mem0.mutex != (sqlite3_mutex *)0x0) {
                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);
                        pVVar12 = local_54;
                        psVar19 = pStmt;
                      }
                      goto LAB_0013c4bb;
                    }
                    iVar20 = iVar20 + 1;
                    (*sqlite3Config.m.xFree)(pvVar3);
                    pVVar12 = local_54;
                    psVar19 = pStmt;
                  } while (iVar20 < (int)local_54);
                }
LAB_0013c5e2:
                if (psVar19 != (sqlite3_stmt *)0x0) {
                  if (sqlite3Config.bMemstat == 0) {
                    (*sqlite3Config.m.xFree)(psVar19);
                  }
                  else {
                    if (mem0.mutex != (sqlite3_mutex *)0x0) {
                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);
                    }
                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);
                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;
                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;
                    (*sqlite3Config.m.xFree)(psVar19);
                    if (mem0.mutex != (sqlite3_mutex *)0x0) {
                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);
                    }
                  }
                }
                pcVar9 = local_48;
                if (local_48 != (char *)0x0) {
                  if (sqlite3Config.bMemstat == 0) {
                    (*sqlite3Config.m.xFree)(local_48);
                  }
                  else {
                    if (mem0.mutex != (sqlite3_mutex *)0x0) {
                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);
                    }
                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);
                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;
                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;
                    (*sqlite3Config.m.xFree)(pcVar9);
                    if (mem0.mutex != (sqlite3_mutex *)0x0) {
                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);
                    }
                  }
                }
                bVar30 = 0xfffffffe < local_114;
                local_114 = (sqlite3_stmt *)((int)local_114 + 1);
                local_110 = local_110 + (uint)bVar30;
              } while ((int)local_114 < (int)pVtab[0x15].pModule);
            } while (local_12c == (sqlite3_stmt *)0x0);
            sqlite3_reset(pAllLangid);
            local_f0 = local_12c;
          }
        }
        else {
          iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);
          if (iVar8 == 0) goto LAB_0013be74;
LAB_0013c124:
          iVar8 = sqlite3_strnicmp(pcVar9,"automerge=",10);
          if (iVar8 != 0) goto LAB_0013ba5f;
          rc_2 = 0;
          pcVar21 = pcVar9 + 10;
          pStmt = (sqlite3_stmt *)0x0;
          cVar6 = pcVar9[10];
          psVar38 = (sqlite3_module *)0x0;
          if ((byte)(cVar6 - 0x30U) < 10) {
            do {
              pcVar21 = pcVar21 + 1;
              psVar38 = (sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10);
              cVar6 = *pcVar21;
              if (9 < (byte)(cVar6 - 0x30U)) break;
            } while ((int)psVar38 < 0xccccccb);
            if ((psVar38 == (sqlite3_module *)0x1) || (0x10 < (int)psVar38)) {
              pVtab[4].pModule = (sqlite3_module *)0x8;
            }
            else {
              pVtab[4].pModule = psVar38;
            }
          }
          else {
            pVtab[4].pModule = (sqlite3_module *)0x0;
          }
          if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {
            fts3DbExec(&rc_2,(sqlite3 *)pVtab[1].pModule,
                       "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"
                       ,pVtab[1].nRef,pVtab[1].zErrMsg);
            local_f0 = (sqlite3_stmt *)rc_2;
            if (rc_2 != 0) goto LAB_0013c0e0;
            *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;
          }
          local_f0 = (sqlite3_stmt *)
                     fts3SqlStmt((Fts3Table *)pVtab,0x17,&pStmt,(sqlite3_value **)pRowid);
          rc_2 = (int)local_f0;
          if (local_f0 == (sqlite3_stmt *)0x0) {
            sqlite3_bind_int64(pStmt,2,CONCAT44(in_stack_fffffec8,pRowid));
            sqlite3_bind_int64(pStmt,(int)pVtab[4].pModule,CONCAT44(in_stack_fffffec8,pRowid));
            sqlite3_step(pStmt);
            local_f0 = (sqlite3_stmt *)sqlite3_reset(pStmt);
          }
        }
      }
LAB_0013c0e0:
      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;
      goto LAB_0013ba71;
    }
    pMVar10 = apVal[(int)&(pVtab[2].pModule)->xCreate];
    uVar2 = pMVar10->flags;
    if ((uVar2 & 4) == 0) {
      if ((uVar2 & 8) == 0) {
        if ((uVar2 & 0x12) == 0) goto LAB_0013b900;
        iVar32 = memIntValue(pMVar10);
        iVar8 = (int)iVar32;
      }
      else {
        iVar32 = doubleToInt64((pMVar10->u).r);
        iVar8 = (int)iVar32;
      }
    }
    else {
      iVar8 = (pMVar10->u).nZero;
    }
    if (iVar8 < 0) {
      rc = 0x13;
      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;
      goto LAB_0013ba95;
    }
  }
LAB_0013b900:
  piDocid = (sqlite3_int64 *)sqlite3_initialize();
  if ((piDocid != (sqlite3_int64 *)0x0) ||
     (psVar7 = (sqlite3_value *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid)),
     psVar7 == (sqlite3_value *)0x0)) {
    rc = 7;
    pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;
    goto LAB_0013ba95;
  }
  psVar38 = pVtab[2].pModule;
  aSzDel = (u32 *)((int)((int)&psVar38->iVersion + 1) * 8);
  piVar35 = (int *)0x0;
  memset(psVar7,0,(size_t)aSzDel);
  if (pVtab[0x16].pModule == (sqlite3_module *)0x0) {
    iVar8 = fts3SqlStmt((Fts3Table *)pVtab,0x10,&pStmt,(sqlite3_value **)pRowid);
    psVar19 = pStmt;
    if (iVar8 == 0) {
      iVar8 = vdbeUnbind((Vdbe *)pStmt,1);
      if ((iVar8 == 0) && (*(sqlite3_mutex **)(*(int *)psVar19 + 0xc) != (sqlite3_mutex *)0x0)) {
        (*sqlite3Config.mutex.xMutexLeave)(*(sqlite3_mutex **)(*(int *)psVar19 + 0xc));
      }
      sqlite3_step(pStmt);
      rc = sqlite3_reset(pStmt);
      iVar8 = rc;
      if (rc == 0) {
        if (1 < nArg) {
          if (pVtab[3].nRef == 0) goto LAB_0013bc30;
          goto LAB_0013c280;
        }
        goto LAB_0013baf0;
      }
    }
  }
  else {
    rc = 0;
    if (nArg < 2) {
LAB_0013baf0:
      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') {
LAB_0013bce0:
        iVar8 = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);
        rc = iVar8;
        goto LAB_0013bcfe;
      }
      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);
    }
    else if (pVtab[3].nRef == 0) {
LAB_0013bc30:
      pMVar10 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 3)];
      if ((aType_23891[pMVar10->flags & 0x1f] == '\x05') &&
         (pMVar10 = apVal[1], aType_23891[pMVar10->flags & 0x1f] == '\x05')) {
LAB_0013c280:
        piDocid = (sqlite3_int64 *)0x0;
      }
      else {
        if (aType_23891[(*apVal)->flags & 0x1f] == '\x05') {
LAB_0013bc87:
          if (sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==
              '\x05') {
            rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);
            piDocid = (sqlite3_int64 *)0x0;
          }
          else {
            rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);
            piDocid = (sqlite3_int64 *)&DAT_00000001;
          }
        }
        else {
          iVar32 = sqlite3VdbeIntValue(*apVal);
          piDocid = (sqlite3_int64 *)iVar32;
          iVar33 = sqlite3VdbeIntValue(pMVar10);
          if (iVar33 != CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid)) goto LAB_0013bc87;
          piDocid = (sqlite3_int64 *)0x0;
        }
        iVar8 = rc;
        if (rc != 0) goto LAB_0013bb29;
      }
      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;
      iVar8 = 0;
LAB_0013bcfe:
      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);
      if ((1 < nArg) && (iVar8 == 0)) {
        iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);
        local_124 = (sqlite3_module *)iVar32;
        if (piDocid == (sqlite3_int64 *)0x0) goto LAB_0013b9c2;
        goto LAB_0013bd4a;
      }
    }
    else {
      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;
      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);
      iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);
      local_124 = (sqlite3_module *)iVar32;
LAB_0013b9c2:
      rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);
      if (rc == 0x13) {
        iVar8 = rc;
        if (pVtab[3].nRef == 0) {
          rc = 0x10b;
          iVar8 = rc;
        }
      }
      else {
LAB_0013bd4a:
        iVar8 = rc;
        if (rc == 0) {
          psVar38 = (((Fts3Table *)pRowid)->base).pModule;
          pcVar9 = (char *)(((Fts3Table *)pRowid)->base).nRef;
          pcVar21 = pVtab[0x16].zErrMsg;
          uVar11 = (uint)(psVar38 < (sqlite3_module *)pVtab[0x16].nRef);
          if (((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))
                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&
               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||
                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&
              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||
             (iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0)) {
            rc = 0;
            pVtab[0x17].pModule = local_124;
            psVar18 = pVtab[2].pModule;
            pVtab[0x16].zErrMsg = pcVar9;
            pVtab[0x16].nRef = (int)psVar38;
            pVtab[0x17].nRef = 0;
            iVar13 = 0;
            iVar8 = iVar20;
            if (0 < (int)psVar18) {
              do {
                if (pVtab[2].zErrMsg[iVar13] == '\0') {
                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);
                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,
                                              (u32 *)((int)local_12c + iVar13 * 4));
                  if (iVar8 != 0) break;
                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);
                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =
                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;
                  psVar18 = pVtab[2].pModule;
                }
                iVar24 = iVar13 + 2;
                iVar13 = iVar13 + 1;
                iVar8 = iVar20;
              } while (iVar24 <= (int)psVar18);
            }
          }
        }
      }
      rc = iVar8;
      if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {
        fts3InsertDocsize(&rc,(Fts3Table *)pVtab,(u32 *)local_12c);
      }
      nChng = nChng + 1;
    }
    iVar8 = rc;
    if ((char)pVtab[0x13].nRef != '\0') {
      fts3UpdateDocTotals(&rc,(Fts3Table *)pVtab,(u32 *)local_12c,(u32 *)psVar7,nChng);
      iVar8 = rc;
    }
  }
LAB_0013bb29:
  rc = iVar8;
  if (sqlite3Config.bMemstat == 0) {
    (*sqlite3Config.m.xFree)(psVar7);
    pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;
  }
  else {
    if (mem0.mutex != (sqlite3_mutex *)0x0) {
      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);
    }
    iVar8 = (*sqlite3Config.m.xSize)(psVar7);
    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;
    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar8;
    (*sqlite3Config.m.xFree)(psVar7);
    if (mem0.mutex == (sqlite3_mutex *)0x0) {
      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;
    }
    else {
      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);
      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;
    }
  }
  goto LAB_0013ba95;
LAB_0013d4fe:
  sqlite3_finalize(pStmt_3);
  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;
  local_f0 = psVar19;
  goto LAB_0013ba71;
LAB_0013d234:
  iVar20 = sqlite3_step(psVar26);
  psVar19 = pStmt_3;
  if (iVar20 == 100) {
    pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);
    iVar32 = sqlite3VdbeIntValue(pMVar10);
    columnMallocFailure(psVar19);
    psVar19 = pStmt_3;
    psVar38 = pVtab[2].pModule;
    if (pVtab[3].zErrMsg == (char *)0x0) {
      local_b0 = (sqlite3 *)0x0;
      in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;
    }
    else {
      pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);
      iVar33 = sqlite3VdbeIntValue(pMVar10);
      local_b0 = (sqlite3 *)iVar33;
      columnMallocFailure(psVar19);
      in_stack_fffffec8 = (Fts3MultiSegReader *)((int)local_b0 >> 0x1f);
      psVar38 = pVtab[2].pModule;
    }
    lVar4 = iVar32 * 9 + CONCAT44(in_stack_fffffec8,local_b0);
    uVar14 = (uint)lVar4;
    iVar20 = (int)((ulonglong)lVar4 >> 0x20);
    uVar11 = uVar14 * 9;
    iVar20 = iVar20 + (iVar20 * 8 | uVar14 >> 0x1d) + (uint)CARRY4(uVar14,uVar14 * 8);
    psVar26 = pStmt_3;
    pRowid = (sqlite_int64 *)local_b0;
    if (0 < (int)psVar38) {
      local_114 = (sqlite3_stmt *)0x0;
      pcVar9 = pVtab[2].zErrMsg;
      do {
        local_10c = (int)local_114 + 1;
        if (pcVar9[(int)local_114] == '\0') {
          uVar27 = (uint)((ulonglong)uVar11 * 9);
          local_dc = uVar27 + (int)local_114;
          local_d8 = (int)((ulonglong)uVar11 * 9 >> 0x20) + iVar20 * 9 + ((int)local_114 >> 0x1f) +
                     (uint)CARRY4(uVar27,(uint)local_114);
          local_e4 = (int)local_114 + uVar14 * 0x51;
          local_e0 = ((int)local_114 >> 0x1f) +
                     (iVar20 * 8 | uVar11 >> 0x1d) + iVar20 + (uint)CARRY4(uVar14 * 0x48,uVar11) +
                     (uint)CARRY4((uint)local_114,uVar14 * 0x51);
          while( true ) {
            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);
            pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_03);
            columnMallocFailure(psVar26);
            psVar19 = pStmt_3;
            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);
            iVar13 = sqlite3ValueBytes(pMVar10,enc_04);
            columnMallocFailure(psVar19);
            pT = (sqlite3_tokenizer_cursor *)0x0;
            psVar19 = (sqlite3_stmt *)
                      sqlite3Fts3OpenTokenizer
                                ((sqlite3_tokenizer *)pVtab[3].pModule,(int)local_b0,pcVar9,iVar13,
                                 &pT);
            if (psVar19 == (sqlite3_stmt *)0x0) {
              while( true ) {
                iCol._0_4_ = 0;
                iVal._0_4_ = 0;
                rc_2 = 0;
                pStmt = (sqlite3_stmt *)0x0;
                psVar19 = (sqlite3_stmt *)
                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt);
                if (psVar19 != (sqlite3_stmt *)0x0) break;
                psVar19 = pStmt + local_e4 + local_e4 * 8;
                uVar27 = ((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +
                         (local_e0 << 3 | local_e4 >> 0x1d) +
                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8);
                if (0 < (int)(uint)iCol) {
                  pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));
                  psVar23 = (sqlite3 *)iDocid;
                  do {
                    uVar16 = (uint)*(char *)&psVar23->pVfs;
                    uVar17 = (int)psVar19 * 8;
                    uVar15 = (uint)psVar19 >> 0x1d;
                    uVar22 = uVar17 + uVar16;
                    bVar30 = CARRY4((uint)psVar19,uVar22);
                    psVar19 = psVar19 + uVar22;
                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +
                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;
                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);
                  } while ((sqlite3 *)pRowid != psVar23);
                }
                local_ec = local_ec ^ (uint)psVar19;
                local_e8 = local_e8 ^ uVar27;
                if (1 < (int)pVtab[0x15].pModule) {
                  pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);
                  local_12c = pStmt + local_dc + local_dc * 8;
                  local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +
                              (local_d8 << 3 | local_dc >> 0x1d) +
                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);
                  do {
                    iVar13 = *(int *)pRowid;
                    if (iVar13 <= (int)(uint)iCol) {
                      psVar19 = local_12c + 0x51;
                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);
                      if (0 < iVar13) {
                        psVar23 = (sqlite3 *)iDocid;
                        do {
                          uVar22 = (uint)*(char *)&psVar23->pVfs;
                          uVar16 = (int)psVar19 * 8;
                          uVar15 = (uint)psVar19 >> 0x1d;
                          uVar17 = uVar16 + uVar22;
                          bVar30 = CARRY4((uint)psVar19,uVar17);
                          psVar19 = psVar19 + uVar17;
                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +
                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;
                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);
                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=
                                 psVar23);
                      }
                      local_ec = local_ec ^ (uint)psVar19;
                      local_e8 = local_e8 ^ uVar27;
                    }
                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);
                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;
                    local_12c = local_12c + 0x51;
                    local_128 = local_128 + (uint)bVar30;
                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=
                           pRowid);
                }
              }
            }
            if (pT != (sqlite3_tokenizer_cursor *)0x0) {
              (**(code **)(iVar8 + 0x10))(pT);
            }
            if (psVar19 != (sqlite3_stmt *)0x65) goto LAB_0013d4fe;
            psVar38 = pVtab[2].pModule;
            psVar26 = pStmt_3;
            if ((int)psVar38 <= (int)local_10c) goto LAB_0013d234;
            bVar30 = 0xfffffffe < local_dc;
            local_dc = local_dc + 1;
            local_d8 = local_d8 + (uint)bVar30;
            pcVar9 = pVtab[2].zErrMsg;
            uVar27 = local_10c;
            bVar30 = 0xfffffffe < local_e4;
            local_e4 = local_e4 + 1;
            local_e0 = local_e0 + (uint)bVar30;
            if (pcVar9[local_10c] != '\0') break;
            local_10c = local_10c + 1;
            local_114 = (sqlite3_stmt *)uVar27;
          }
          local_10c = (int)local_114 + 2;
        }
        local_114 = (sqlite3_stmt *)local_10c;
      } while ((int)local_114 < (int)psVar38);
    }
    goto LAB_0013d234;
  }
  sqlite3_finalize(pStmt_3);
  if (local_e8 == local_b4 && local_ec == local_d0) goto LAB_0013c0e0;
  local_f0 = (sqlite3_stmt *)0x10b;
  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;
LAB_0013ba71:
  rc = (int)local_f0;
LAB_0013ba95:
  sqlite3_blob_close(pBlob);
  pVtab[0x14].zErrMsg = (char *)0x0;
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return rc;
}



int * FUN_0013b860(int param_1,int param_2,int *param_3,uint *param_4)

{
  ushort uVar1;
  char cVar2;
  int iVar3;
  void *__s;
  int iVar4;
  undefined4 uVar5;
  int *piVar6;
  uint uVar7;
  int iVar8;
  int iVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  int *__s_00;
  undefined1 *puVar14;
  char *pcVar15;
  byte *pbVar16;
  uint uVar17;
  int *extraout_ECX;
  int *extraout_ECX_00;
  int *extraout_ECX_01;
  int *extraout_ECX_02;
  int *extraout_ECX_03;
  int *extraout_ECX_04;
  int *extraout_ECX_05;
  int *extraout_ECX_06;
  int iVar18;
  byte *pbVar19;
  int unaff_EBP;
  uint uVar20;
  int **ppiVar21;
  byte *pbVar22;
  int in_GS_OFFSET;
  bool bVar23;
  byte bVar24;
  longlong lVar25;
  longlong lVar26;
  undefined8 uVar27;
  uint uVar28;
  int *__s_01;
  int local_134;
  int *local_12c;
  int local_128;
  int local_124;
  uint local_114;
  int local_110;
  uint local_10c;
  int *local_108;
  uint local_104;
  uint local_100;
  int *local_f0;
  uint local_ec;
  uint local_e8;
  uint local_e4;
  int local_e0;
  uint local_dc;
  int local_d8;
  uint local_d0;
  uint local_b4;
  int *local_98;
  undefined4 local_94;
  undefined4 local_8c;
  int local_88;
  char *local_84;
  int local_80;
  uint local_7c [5];
  int *local_68;
  undefined4 local_64;
  undefined4 local_60;
  undefined4 local_5c;
  int *local_58;
  int local_54;
  int **local_4c;
  int local_48;
  char *local_30;
  int local_2c;
  int local_28;
  int local_24;
  int local_20;
  
  bVar24 = 0;
  FUN_0003a405();
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_94 = 0;
  if (1 < param_2) {
    if ((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&
       (*(char *)(unaff_EBP + 0x2847a +
                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')) {
      iVar3 = FUN_0007f6d0();
      iVar4 = FUN_0007f360();
      if (iVar3 == 0) {
        local_f0 = (int *)0x7;
        uVar5 = *(undefined4 *)(param_1 + 0xf8);
        goto LAB_0013ba71;
      }
      if (iVar4 == 8) {
        iVar4 = FUN_00044730();
        if (iVar4 == 0) {
          local_f0 = (int *)FUN_00139450();
          uVar5 = *(undefined4 *)(param_1 + 0xf8);
          goto LAB_0013ba71;
        }
LAB_0013be5a:
        iVar4 = FUN_00044730();
        if (iVar4 == 0) {
LAB_0013be74:
          cVar2 = *(char *)(iVar3 + 6);
          pcVar15 = (char *)(iVar3 + 6);
          iVar3 = 0;
          if ((byte)(cVar2 - 0x30U) < 10) {
            do {
              pcVar15 = pcVar15 + 1;
              iVar3 = cVar2 + -0x30 + iVar3 * 10;
              cVar2 = *pcVar15;
              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;
            } while (iVar3 < 0xccccccb);
          }
          else {
LAB_0013beb1:
            if (cVar2 == ',') {
              cVar2 = pcVar15[1];
              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {
                iVar3 = 0;
                do {
                  pcVar15 = pcVar15 + 1;
                  iVar3 = cVar2 + -0x30 + iVar3 * 10;
                  cVar2 = *pcVar15;
                  if (9 < (byte)(cVar2 - 0x30U)) break;
                } while (iVar3 < 0xccccccb);
                if (1 < iVar3) goto joined_r0x0013cd82;
              }
            }
            else {
joined_r0x0013cd82:
              if (cVar2 == '\0') {
                local_58 = (int *)0x0;
                if (*(char *)(param_1 + 0xe9) == '\0') {
                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,
                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));
                  if (local_58 == (int *)0x0) {
                    *(undefined1 *)(param_1 + 0xe9) = 1;
                    goto LAB_0013bf22;
                  }
                }
                else {
LAB_0013bf22:
                  local_58 = (int *)FUN_0012d940();
                }
                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));
                *(undefined4 *)(param_1 + 0xf8) = 0;
                uVar5 = 0;
                local_f0 = local_58;
                goto LAB_0013ba71;
              }
            }
          }
        }
LAB_0013ba5f:
        local_f0 = (int *)&DAT_00000001;
        uVar5 = *(undefined4 *)(param_1 + 0xf8);
        goto LAB_0013ba71;
      }
      if (iVar4 == 7) {
        iVar4 = FUN_00044730();
        if (iVar4 != 0) goto LAB_0013be5a;
        local_f0 = (int *)FUN_0010da50();
        local_68 = local_f0;
        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;
        local_58 = (int *)0x0;
        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));
        piVar6 = extraout_ECX;
        if (iVar3 == 0) goto LAB_0013d10b;
        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);
        FUN_00044000(iVar3);
        piVar6 = local_68;
        if (local_68 == (int *)0x0) {
          iVar3 = *(int *)(param_1 + 0x18);
          iVar4 = FUN_00067fc0();
          piVar6 = extraout_ECX_00;
          if (iVar4 != 0) {
LAB_0013d10b:
            local_68 = (int *)0x7;
            goto LAB_0013d116;
          }
          __s_00 = (int *)FUN_00055780();
          piVar6 = extraout_ECX_01;
          if (__s_00 == (int *)0x0) goto LAB_0013d10b;
          __s_01 = __s_00;
          memset(__s_00,0,(iVar3 + 1) * 0xc);
          iVar3 = *(int *)(param_1 + 0x18);
          local_108 = __s_00 + iVar3 * 2 + 2;
          local_f0 = (int *)0x0;
          piVar6 = extraout_ECX_02;
          while ((local_68 == (int *)0x0 &&
                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {
            local_134 = 0;
            if (*(int *)(param_1 + 0x2c) != 0) {
              FUN_0004c5d0();
              local_134 = FUN_00045540();
              FUN_0004c6c0();
            }
            lVar25 = FUN_0005b180();
            iVar18 = (int)((ulonglong)lVar25 >> 0x20);
            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));
            iVar4 = iVar18 - *(int *)(param_1 + 0x110);
            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==
                   (int)(iVar4 - uVar7) < 0) &&
                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&
                  (local_134 == *(int *)(param_1 + 0x114))))) &&
                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||
               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {
              *(longlong *)(param_1 + 0x10c) = lVar25;
              *(undefined4 *)(param_1 + 0x118) = 0;
              *(int *)(param_1 + 0x114) = local_134;
              local_68 = (int *)0x0;
            }
            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);
            piVar6 = __s_01;
            if (local_68 == (int *)0x0) {
              iVar4 = *(int *)(param_1 + 0x18);
              piVar6 = extraout_ECX_04;
              if (0 < iVar4) {
                iVar18 = 0;
                do {
                  iVar9 = iVar18 + 1;
                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {
                    FUN_0004c5d0();
                    FUN_0007f6d0();
                    FUN_0004c6c0();
                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);
                    FUN_0004c5d0();
                    iVar4 = FUN_0007f360();
                    piVar6 = __s_01;
                    FUN_0004c6c0();
                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;
                    if (local_68 != (int *)0x0) goto LAB_0013d062;
                    iVar4 = *(int *)(param_1 + 0x18);
                    __s_01 = piVar6;
                  }
                  iVar18 = iVar9;
                } while (iVar9 < iVar4);
              }
              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;
LAB_0013d09a:
              local_f0 = (int *)((int)local_f0 + 1);
              if (-1 < iVar4) {
                iVar4 = 0;
                do {
                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];
                  iVar4 = iVar4 + 1;
                  piVar6 = __s_01;
                } while (iVar4 <= *(int *)(param_1 + 0x18));
              }
            }
            else {
LAB_0013d062:
              __s_01 = piVar6;
              if (*(char *)(param_1 + 0xea) != '\0') {
LAB_0013d0c3:
                FUN_00111bd0();
                if (local_68 == (int *)0x0) {
                  iVar4 = *(int *)(param_1 + 0x18);
                  piVar6 = extraout_ECX_06;
                  goto LAB_0013d09a;
                }
              }
              FUN_000c0450(local_58);
              local_58 = (int *)0x0;
              piVar6 = extraout_ECX_05;
            }
          }
        }
        else {
LAB_0013d116:
          local_108 = (int *)0x0;
          __s_01 = (int *)0x0;
          local_f0 = (int *)0x0;
        }
        if (*(char *)(param_1 + 0xe8) != '\0') {
          FUN_00111db0(local_108,local_f0,piVar6,piVar6);
        }
        FUN_00044000(__s_01);
        if ((local_58 != (int *)0x0) &&
           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {
          local_68 = piVar6;
        }
        local_f0 = local_68;
      }
      else {
        if (iVar4 != 0xf) {
          if (6 < iVar4) {
            iVar18 = FUN_00044730();
            if (iVar18 == 0) goto LAB_0013be74;
            if (10 < iVar4) goto LAB_0013c124;
          }
          goto LAB_0013ba5f;
        }
        iVar4 = FUN_00044730();
        if (iVar4 == 0) {
          local_f0 = (int *)FUN_00101610();
          if (local_f0 == (int *)0x0) {
            FUN_00079e80();
            FUN_00079e00();
            local_d0 = 0;
            local_b4 = 0;
            do {
              do {
                iVar3 = FUN_000e7e00(0);
                if (iVar3 != 100) {
                  local_f0 = (int *)FUN_000bfe40(0);
                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;
                  iVar3 = **(int **)(param_1 + 0x24);
                  local_8c = 0;
                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));
                  if (iVar4 != 0) {
                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);
                    FUN_00044000(iVar4);
                    local_ec = 0;
                    local_e8 = 0;
                    piVar6 = local_f0;
                    uVar5 = local_8c;
                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;
                    goto LAB_0013d234;
                  }
                  FUN_000c0450(local_8c);
                  uVar5 = *(undefined4 *)(param_1 + 0xf8);
                  local_f0 = (int *)0x7;
                  goto LAB_0013ba71;
                }
                FUN_0004c5d0();
                uVar7 = FUN_00045540();
                FUN_0004c6c0();
              } while (*(int *)(param_1 + 0xfc) < 1);
              local_114 = 0;
              local_110 = 0;
              do {
                local_68 = (int *)0x0;
                local_64 = 0;
                local_60 = 0;
                ppiVar21 = &local_58;
                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {
                  *ppiVar21 = (int *)0x0;
                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;
                }
                local_5c = 0x13;
                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);
                if ((local_12c == (int *)0x0) &&
                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),
                   local_12c == (int *)0x0)) {
                  local_104 = 0;
                  local_100 = 0;
LAB_0013c8a0:
                  local_12c = (int *)FUN_0012ba30();
                  iVar3 = local_28;
                  if (local_12c == (int *)0x64) {
                    local_84 = (char *)0x0;
                    local_80 = 0;
                    local_7c[0] = 0;
                    pbVar19 = (byte *)(local_24 + local_28);
                    local_7c[1] = 0;
                    iVar4 = FUN_0003e400();
                    uVar28 = 0;
                    pbVar22 = (byte *)(iVar3 + iVar4);
                    iVar3 = 0;
                    if (pbVar22 < pbVar19) {
                      while( true ) {
                        local_7c[2] = (uint)*pbVar22;
                        if ((char)*pbVar22 < '\0') {
                          uVar10 = local_7c[2] & 0x7f;
                          uVar20 = (uint)pbVar22[1] << 7;
                          local_7c[2] = uVar20 | uVar10;
                          if ((uVar20 & 0x4000) == 0) {
                            iVar4 = 2;
                            local_7c[3] = 0;
                          }
                          else {
                            uVar10 = uVar20 & 0x3fff | uVar10;
                            uVar20 = (uint)pbVar22[2] << 0xe;
                            local_7c[2] = uVar10 | uVar20;
                            if ((uVar20 & 0x200000) == 0) {
                              iVar4 = 3;
                              local_7c[3] = 0;
                            }
                            else {
                              uVar10 = uVar10 | uVar20 & 0x1fffff;
                              uVar20 = (uint)pbVar22[3] << 0x15;
                              local_7c[2] = uVar10 | uVar20;
                              if ((uVar20 & 0x10000000) == 0) {
                                iVar4 = 4;
                                local_7c[3] = 0;
                              }
                              else {
                                uVar10 = uVar10 | uVar20 & 0xfffffff;
                                uVar20 = pbVar22[4] & 0x7f;
                                uVar11 = uVar20 * 0x10000000;
                                local_7c[2] = uVar10 + uVar11;
                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);
                                if ((char)pbVar22[4] < '\0') {
                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;
                                  if ((char)pbVar22[5] < '\0') {
                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;
                                    if ((char)pbVar22[6] < '\0') {
                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;
                                      if ((char)pbVar22[7] < '\0') {
                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;
                                        if ((char)pbVar22[8] < '\0') {
                                          pbVar16 = pbVar22 + 10;
                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000
                                          ;
                                        }
                                        else {
                                          pbVar16 = pbVar22 + 9;
                                        }
                                      }
                                      else {
                                        pbVar16 = pbVar22 + 8;
                                      }
                                    }
                                    else {
                                      pbVar16 = pbVar22 + 7;
                                    }
                                  }
                                  else {
                                    pbVar16 = pbVar22 + 6;
                                  }
                                }
                                else {
                                  pbVar16 = pbVar22 + 5;
                                }
                                iVar4 = (int)pbVar16 - (int)pbVar22;
                              }
                            }
                          }
                        }
                        else {
                          iVar4 = 1;
                          local_7c[3] = 0;
                        }
                        pbVar22 = pbVar22 + iVar4;
                        if (pbVar19 <= pbVar22) break;
                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {
                          local_7c[0] = 0;
                          local_7c[1] = 0;
                          if (local_7c[3] == 0 && local_7c[2] == 0) {
                            iVar3 = FUN_0003e400(uVar28,iVar3);
                            bVar23 = CARRY4((uint)local_84,local_7c[2]);
                            local_84 = local_84 + local_7c[2];
                            local_80 = local_80 + local_7c[3] + (uint)bVar23;
                          }
                          else {
                            iVar3 = FUN_0003e400(uVar28,iVar3);
                          }
                          pbVar22 = pbVar22 + iVar3;
                          if (pbVar19 <= pbVar22) break;
                          uVar28 = 0;
                          iVar3 = 0;
                        }
                        else {
                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);
                          uVar28 = uVar28 + (local_7c[2] - 2);
                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;
                          uVar20 = (int)local_84 * 9 + uVar7;
                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +
                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +
                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);
                          uVar10 = uVar20 * 9 + local_114;
                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +
                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +
                                  (uint)CARRY4(uVar20 * 9,local_114);
                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];
                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +
                                  iVar4 + ((int)local_7c[0] >> 0x1f) +
                                  (uint)CARRY4(uVar10,local_7c[0]) +
                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);
                          uVar10 = uVar28 + uVar20 * 9;
                          uVar20 = ((int)uVar28 >> 0x1f) +
                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +
                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)
                          ;
                          if (0 < local_2c) {
                            pcVar15 = local_30;
                            do {
                              uVar17 = (uint)*pcVar15;
                              uVar12 = uVar10 * 8;
                              uVar11 = uVar10 >> 0x1d;
                              uVar13 = uVar12 + uVar17;
                              bVar23 = CARRY4(uVar10,uVar13);
                              uVar10 = uVar10 + uVar13;
                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +
                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;
                              pcVar15 = pcVar15 + 1;
                            } while (local_30 + local_2c != pcVar15);
                          }
                          local_104 = local_104 ^ uVar10;
                          local_100 = local_100 ^ uVar20;
                        }
                      }
                    }
                    goto LAB_0013c8a0;
                  }
                  local_d0 = local_d0 ^ local_104;
                  local_b4 = local_b4 ^ local_100;
                }
                piVar6 = local_58;
                if (0 < local_54) {
                  iVar4 = 0;
                  iVar3 = local_54;
                  do {
                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {
LAB_0013c4bb:
                      iVar4 = iVar4 + 1;
                      if (iVar3 <= iVar4) goto LAB_0013c5e2;
                    }
                    if ((*(int *)(iVar18 + 0x38) == 0) &&
                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {
                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {
                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);
                      }
                      else {
                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));
                        }
                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);
                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;
                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;
                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);
                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));
                        }
                      }
                    }
                    if ((*(char *)(iVar18 + 5) == '\0') &&
                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {
                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {
                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);
                      }
                      else {
                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));
                        }
                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);
                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;
                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;
                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);
                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));
                        }
                      }
                    }
                    iVar3 = *(int *)(iVar18 + 0x34);
                    if (iVar3 != 0) {
                      iVar9 = *(int *)(iVar3 + 0x14);
                      if (*(int *)(iVar9 + 0xc) != 0) {
                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));
                      }
                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));
                      if (*(int *)(iVar9 + 0x1e0) == 0) {
                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {
                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);
                        }
                        else {
                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));
                          }
                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);
                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;
                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;
                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);
                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));
                          }
                        }
                      }
                      else {
                        FUN_0003a540();
                      }
                      if (*(int *)(iVar9 + 0xc) != 0) {
                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));
                      }
                    }
                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {
                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));
                      }
                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);
                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;
                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;
                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);
                      iVar3 = local_54;
                      piVar6 = local_58;
                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));
                        iVar3 = local_54;
                        piVar6 = local_58;
                      }
                      goto LAB_0013c4bb;
                    }
                    iVar4 = iVar4 + 1;
                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);
                    iVar3 = local_54;
                    piVar6 = local_58;
                  } while (iVar4 < local_54);
                }
LAB_0013c5e2:
                if (piVar6 != (int *)0x0) {
                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {
                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);
                  }
                  else {
                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));
                    }
                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);
                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;
                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;
                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);
                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));
                    }
                  }
                }
                iVar3 = local_48;
                if (local_48 != 0) {
                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {
                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);
                  }
                  else {
                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));
                    }
                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);
                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;
                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;
                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);
                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));
                    }
                  }
                }
                bVar23 = 0xfffffffe < local_114;
                local_114 = local_114 + 1;
                local_110 = local_110 + (uint)bVar23;
              } while ((int)local_114 < *(int *)(param_1 + 0xfc));
            } while (local_12c == (int *)0x0);
            FUN_000bfe40(0);
            local_f0 = local_12c;
          }
        }
        else {
          iVar4 = FUN_00044730();
          if (iVar4 == 0) goto LAB_0013be74;
LAB_0013c124:
          iVar4 = FUN_00044730();
          if (iVar4 != 0) goto LAB_0013ba5f;
          local_68 = (int *)0x0;
          pcVar15 = (char *)(iVar3 + 10);
          local_58 = (int *)0x0;
          cVar2 = *(char *)(iVar3 + 10);
          iVar3 = 0;
          if ((byte)(cVar2 - 0x30U) < 10) {
            do {
              pcVar15 = pcVar15 + 1;
              iVar3 = cVar2 + -0x30 + iVar3 * 10;
              cVar2 = *pcVar15;
              if (9 < (byte)(cVar2 - 0x30U)) break;
            } while (iVar3 < 0xccccccb);
            if ((iVar3 == 1) || (0x10 < iVar3)) {
              *(undefined4 *)(param_1 + 0x30) = 8;
            }
            else {
              *(int *)(param_1 + 0x30) = iVar3;
            }
          }
          else {
            *(undefined4 *)(param_1 + 0x30) = 0;
          }
          if (*(char *)(param_1 + 0xe9) == '\0') {
            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,
                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));
            local_f0 = local_68;
            if (local_68 != (int *)0x0) goto LAB_0013c0e0;
            *(undefined1 *)(param_1 + 0xe9) = 1;
          }
          local_f0 = (int *)FUN_00101610();
          local_68 = local_f0;
          if (local_f0 == (int *)0x0) {
            FUN_00079e80();
            FUN_00079e00();
            FUN_000e7e00(local_58);
            local_f0 = (int *)FUN_000bfe40(local_58);
          }
        }
      }
LAB_0013c0e0:
      uVar5 = *(undefined4 *)(param_1 + 0xf8);
      goto LAB_0013ba71;
    }
    piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4];
    uVar1 = *(ushort *)(piVar6 + 2);
    if ((uVar1 & 4) == 0) {
      if ((uVar1 & 8) == 0) {
        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;
        iVar3 = FUN_0003c930();
      }
      else {
        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);
      }
    }
    else {
      iVar3 = *piVar6;
    }
    if (iVar3 < 0) {
      local_98 = (int *)0x13;
      uVar5 = *(undefined4 *)(param_1 + 0xf8);
      goto LAB_0013ba95;
    }
  }
LAB_0013b900:
  iVar3 = FUN_00067fc0();
  if ((iVar3 != 0) || (__s = (void *)FUN_00055780(), __s == (void *)0x0)) {
    local_98 = (int *)0x7;
    uVar5 = *(undefined4 *)(param_1 + 0xf8);
    goto LAB_0013ba95;
  }
  iVar3 = *(int *)(param_1 + 0x18) + 1;
  memset(__s,0,iVar3 * 8);
  bVar23 = false;
  if (*(int *)(param_1 + 0x108) == 0) {
    local_98 = (int *)FUN_00101610();
    piVar6 = local_58;
    if (local_98 == (int *)0x0) {
      iVar4 = FUN_00079820();
      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {
        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));
      }
      FUN_000e7e00(local_58);
      local_98 = (int *)FUN_000bfe40(local_58);
      if (local_98 == (int *)0x0) {
        if (1 < param_2) {
          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;
          goto LAB_0013c280;
        }
        goto LAB_0013baf0;
      }
    }
  }
  else {
    local_98 = (int *)0x0;
    if (param_2 < 2) {
LAB_0013baf0:
      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {
LAB_0013bce0:
        piVar6 = (int *)FUN_0013b480(__s);
        local_98 = piVar6;
        goto LAB_0013bcfe;
      }
    }
    else if (*(int *)(param_1 + 0x28) == 0) {
LAB_0013bc30:
      if ((*(char *)(unaff_EBP + 0x2847a +
                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&
         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {
LAB_0013c280:
        bVar23 = false;
      }
      else {
        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {
LAB_0013bc87:
          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'
             ) {
            local_98 = (int *)FUN_0013b480(__s);
            bVar23 = false;
          }
          else {
            local_98 = (int *)FUN_0010b320();
            bVar23 = true;
          }
        }
        else {
          lVar25 = FUN_00045540();
          lVar26 = FUN_00045540();
          if (lVar25 != lVar26) goto LAB_0013bc87;
          bVar23 = false;
        }
        if (local_98 != (int *)0x0) goto LAB_0013bb29;
      }
      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')
      goto LAB_0013bce0;
      piVar6 = (int *)0x0;
LAB_0013bcfe:
      local_12c = (int *)((int)__s + iVar3 * 4);
      if ((1 < param_2) && (piVar6 == (int *)0x0)) {
        local_124 = FUN_00045540();
        if (!bVar23) goto LAB_0013b9c2;
        goto LAB_0013bd4a;
      }
    }
    else {
      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')
      goto LAB_0013bce0;
      local_12c = (int *)((int)__s + iVar3 * 4);
      local_124 = FUN_00045540();
LAB_0013b9c2:
      local_98 = (int *)FUN_0010b320();
      if (local_98 == (int *)0x13) {
        piVar6 = local_98;
        if (*(int *)(param_1 + 0x28) == 0) {
          local_98 = (int *)0x10b;
          piVar6 = local_98;
        }
      }
      else {
LAB_0013bd4a:
        piVar6 = local_98;
        if (local_98 == (int *)0x0) {
          uVar7 = *param_4;
          uVar28 = param_4[1];
          uVar10 = *(uint *)(param_1 + 0x110);
          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));
          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==
                (int)((uVar28 - uVar10) - uVar20) < 0) &&
              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||
                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&
               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||
             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {
            *(int *)(param_1 + 0x114) = local_124;
            iVar3 = *(int *)(param_1 + 0x18);
            *(uint *)(param_1 + 0x110) = uVar28;
            *(uint *)(param_1 + 0x10c) = uVar7;
            *(undefined4 *)(param_1 + 0x118) = 0;
            iVar4 = 0;
            piVar6 = local_98;
            if (0 < iVar3) {
              do {
                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {
                  FUN_0007f6d0();
                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));
                  if (piVar6 != (int *)0x0) break;
                  iVar3 = FUN_0007f360();
                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);
                  *piVar6 = *piVar6 + iVar3;
                  iVar3 = *(int *)(param_1 + 0x18);
                }
                iVar18 = iVar4 + 2;
                iVar4 = iVar4 + 1;
                piVar6 = local_98;
              } while (iVar18 <= iVar3);
            }
          }
        }
      }
      local_98 = piVar6;
      if (*(char *)(param_1 + 0xea) != '\0') {
        FUN_00111bd0();
      }
      local_94 = 1;
    }
    if (*(char *)(param_1 + 0xe8) != '\0') {
      FUN_00111db0(__s,local_94);
    }
  }
LAB_0013bb29:
  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {
    (**(code **)(unaff_EBP + 0x7fbaa))(__s);
    uVar5 = *(undefined4 *)(param_1 + 0xf8);
  }
  else {
    if (*(int *)(unaff_EBP + 0x8155e) != 0) {
      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));
    }
    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);
    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;
    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;
    (**(code **)(unaff_EBP + 0x7fbaa))(__s);
    if (*(int *)(unaff_EBP + 0x8155e) == 0) {
      uVar5 = *(undefined4 *)(param_1 + 0xf8);
    }
    else {
      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));
      uVar5 = *(undefined4 *)(param_1 + 0xf8);
    }
  }
  goto LAB_0013ba95;
LAB_0013d4fe:
  FUN_000c0450(local_8c);
  uVar5 = *(undefined4 *)(param_1 + 0xf8);
  local_f0 = piVar6;
  goto LAB_0013ba71;
LAB_0013d234:
  iVar4 = FUN_000e7e00(uVar5);
  if (iVar4 == 100) {
    FUN_0004c5d0();
    uVar27 = FUN_00045540();
    iVar18 = (int)((ulonglong)uVar27 >> 0x20);
    uVar7 = (uint)uVar27;
    FUN_0004c6c0();
    iVar4 = *(int *)(param_1 + 0x18);
    if (*(int *)(param_1 + 0x2c) == 0) {
      uVar28 = 0;
      iVar9 = 0;
    }
    else {
      FUN_0004c5d0();
      uVar28 = FUN_00045540();
      FUN_0004c6c0();
      iVar9 = (int)uVar28 >> 0x1f;
      iVar4 = *(int *)(param_1 + 0x18);
    }
    uVar10 = uVar7 * 9 + uVar28;
    iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +
             (uint)CARRY4(uVar7 * 9,uVar28);
    uVar7 = uVar10 * 9;
    iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8);
    uVar5 = local_8c;
    if (0 < iVar4) {
      local_114 = 0;
      iVar9 = *(int *)(param_1 + 0x20);
      do {
        local_10c = local_114 + 1;
        if (*(char *)(iVar9 + local_114) == '\0') {
          uVar28 = (uint)((ulonglong)uVar7 * 9);
          local_dc = uVar28 + local_114;
          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +
                     (uint)CARRY4(uVar28,local_114);
          local_e4 = local_114 + uVar10 * 0x51;
          local_e0 = ((int)local_114 >> 0x1f) +
                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +
                     (uint)CARRY4(local_114,uVar10 * 0x51);
          while( true ) {
            FUN_0004c5d0();
            FUN_0007f6d0();
            FUN_0004c6c0();
            FUN_0004c5d0();
            uVar5 = FUN_0007f360();
            FUN_0004c6c0();
            local_88 = 0;
            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);
            if (piVar6 == (int *)0x0) {
              while( true ) {
                local_7c[0] = 0;
                local_7c[2] = 0;
                local_68 = (int *)0x0;
                local_58 = (int *)0x0;
                piVar6 = (int *)(**(code **)(iVar3 + 0x14))
                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,
                                           &local_58);
                if (piVar6 != (int *)0x0) break;
                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;
                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)
                         + (local_e0 << 3 | local_e4 >> 0x1d) +
                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);
                if (0 < (int)local_7c[0]) {
                  pcVar15 = local_84;
                  do {
                    uVar11 = (uint)*pcVar15;
                    uVar12 = (int)puVar14 * 8;
                    uVar20 = (uint)puVar14 >> 0x1d;
                    uVar13 = uVar12 + uVar11;
                    bVar23 = CARRY4((uint)puVar14,uVar13);
                    puVar14 = puVar14 + uVar13;
                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +
                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;
                    pcVar15 = pcVar15 + 1;
                  } while (local_84 + local_7c[0] != pcVar15);
                }
                local_ec = local_ec ^ (uint)puVar14;
                local_e8 = local_e8 ^ uVar28;
                if (1 < *(int *)(param_1 + 0xfc)) {
                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);
                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);
                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +
                              (uint)CARRY4((uint)local_58,local_dc) +
                              (local_d8 << 3 | local_dc >> 0x1d) +
                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);
                  do {
                    iVar4 = *piVar6;
                    if (iVar4 <= (int)local_7c[0]) {
                      puVar14 = (undefined1 *)((int)local_12c + 0x51);
                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);
                      if (0 < iVar4) {
                        pcVar15 = local_84;
                        do {
                          uVar13 = (uint)*pcVar15;
                          uVar11 = (int)puVar14 * 8;
                          uVar20 = (uint)puVar14 >> 0x1d;
                          uVar12 = uVar11 + uVar13;
                          bVar23 = CARRY4((uint)puVar14,uVar12);
                          puVar14 = puVar14 + uVar12;
                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +
                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;
                          pcVar15 = pcVar15 + 1;
                        } while (local_84 + iVar4 != pcVar15);
                      }
                      local_ec = local_ec ^ (uint)puVar14;
                      local_e8 = local_e8 ^ uVar28;
                    }
                    piVar6 = piVar6 + 6;
                    bVar23 = (undefined1 *)0xffffffae < local_12c;
                    local_12c = (int *)((int)local_12c + 0x51);
                    local_128 = local_128 + (uint)bVar23;
                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=
                           piVar6);
                }
              }
            }
            if (local_88 != 0) {
              (**(code **)(iVar3 + 0x10))(local_88);
            }
            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;
            iVar4 = *(int *)(param_1 + 0x18);
            uVar5 = local_8c;
            if (iVar4 <= (int)local_10c) goto LAB_0013d234;
            bVar23 = 0xfffffffe < local_dc;
            local_dc = local_dc + 1;
            local_d8 = local_d8 + (uint)bVar23;
            iVar9 = *(int *)(param_1 + 0x20);
            uVar28 = local_10c;
            bVar23 = 0xfffffffe < local_e4;
            local_e4 = local_e4 + 1;
            local_e0 = local_e0 + (uint)bVar23;
            if (*(char *)(iVar9 + local_10c) != '\0') break;
            local_10c = local_10c + 1;
            local_114 = uVar28;
          }
          local_10c = local_114 + 2;
        }
        local_114 = local_10c;
      } while ((int)local_114 < iVar4);
    }
    goto LAB_0013d234;
  }
  FUN_000c0450(local_8c);
  if (local_e8 == local_b4 && local_ec == local_d0) goto LAB_0013c0e0;
  local_f0 = (int *)0x10b;
  uVar5 = *(undefined4 *)(param_1 + 0xf8);
LAB_0013ba71:
  local_98 = local_f0;
LAB_0013ba95:
  FUN_000c0610(uVar5);
  *(undefined4 *)(param_1 + 0xf8) = 0;
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00153870();
  }
  return local_98;
}


PUSH EBP
CALL 0x0003a405
ADD EBP,0x7f5c2
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x12c
MOV EAX,dword ptr [ESP + 0x140]
MOV EDI,dword ptr [ESP + 0x14c]
MOV ESI,dword ptr [ESP + 0x148]
MOV dword ptr [ESP + 0x20],EAX
MOV EBX,dword ptr [EAX + 0x18]
MOV dword ptr [ESP],EDI
MOV EDI,dword ptr GS:[0x14]
MOV dword ptr [ESP + 0x11c],EDI
XOR EDI,EDI
CMP dword ptr [ESP + 0x144],0x1
MOV dword ptr [ESP + 0xa4],0x0
MOV dword ptr [ESP + 0xa8],0x0
JLE 0x0013b900
MOV EAX,dword ptr [ESI]
MOVZX EAX,word ptr [EAX + 0x8]
AND EAX,0x1f
CMP byte ptr [EBP + EAX*0x1 + 0xfffa8eb8],0x5
JZ 0x0013ba08
MOV EAX,dword ptr [ESI + EBX*0x4 + 0x10]
MOVZX EDX,word ptr [EAX + 0x8]
TEST DL,0x4
JNZ 0x0013bad8
TEST DL,0x8
JNZ 0x0013bde0
AND EDX,0x12
JNZ 0x0013bba0
NOP
CALL 0x00067fc0
MOV dword ptr [ESP + 0x8],EAX
TEST EAX,EAX
JNZ 0x0013ba80
MOV EAX,EBX
CDQ
ADD EAX,0x1
ADC EDX,0x0
SHLD EDX,EAX,0x3
SHL EAX,0x3
CALL 0x00055780
MOV EDI,EAX
TEST EAX,EAX
JZ 0x0013ba80
MOV EAX,dword ptr [ESP + 0x20]
SUB ESP,0x4
MOV EBX,EBP
MOV EDX,dword ptr [EAX + 0x18]
ADD EDX,0x1
MOV dword ptr [ESP + 0x14],EDX
LEA EAX,[EDX*0x8 + 0x0]
PUSH EAX
PUSH 0x0
PUSH EDI
CALL 0x00015440
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [EAX + 0x108]
TEST EDX,EDX
JZ 0x0013bdb8
CMP dword ptr [ESP + 0x144],0x1
MOV dword ptr [ESP + 0xa4],0x0
JLE 0x0013baf0
MOV EAX,dword ptr [EAX + 0x28]
TEST EAX,EAX
JZ 0x0013bc30
MOV EDX,dword ptr [ESI]
MOVZX EAX,word ptr [EDX + 0x8]
AND EAX,0x1f
CMP byte ptr [EBP + EAX*0x1 + 0xfffa8eb8],0x5
JNZ 0x0013bce0
MOV EAX,dword ptr [ESP + 0x10]
LEA EAX,[EDI + EAX*0x4]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x18]
MOV EAX,dword ptr [ESI + EAX*0x4 + 0x10]
CALL 0x00045540
MOV dword ptr [ESP + 0x18],EAX
MOV ECX,dword ptr [ESP]
MOV EAX,dword ptr [ESP + 0x20]
MOV EDX,ESI
CALL 0x0010b320
MOV dword ptr [ESP + 0x8],EAX
MOV dword ptr [ESP + 0xa4],EAX
CMP EAX,0x13
JNZ 0x0013bd4a
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x28]
TEST EAX,EAX
JNZ 0x0013bd56
MOV dword ptr [ESP + 0xa4],0x10b
JMP 0x0013bd56
MOV EDI,dword ptr [ESI + EBX*0x4 + 0x8]
MOVZX EAX,word ptr [EDI + 0x8]
AND EAX,0x1f
CMP byte ptr [EBP + EAX*0x1 + 0xfffa8eb8],0x5
JZ 0x0013b8db
MOV EAX,EDI
CALL 0x0007f6d0
MOV EBX,EAX
MOV EAX,EDI
CALL 0x0007f360
MOV ESI,EAX
TEST EBX,EBX
JZ 0x0013c2bf
CMP EAX,0x8
JZ 0x0013be40
CMP EAX,0x7
JZ 0x0013c0a8
CMP EAX,0xf
JZ 0x0013c0f0
CMP EAX,0x6
JG 0x0013d7c9
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x4c],0x1
MOV EAX,dword ptr [EAX + 0xf8]
MOV EDI,dword ptr [ESP + 0x4c]
MOV dword ptr [ESP + 0xa4],EDI
JMP 0x0013ba95
MOV dword ptr [ESP + 0xa4],0x7
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0xf8]
SUB ESP,0xc
PUSH EAX
CALL 0x000c0610
MOV EAX,dword ptr [ESP + 0x30]
ADD ESP,0x10
MOV dword ptr [EAX + 0xf8],0x0
MOV EAX,dword ptr [ESP + 0xa4]
MOV EDI,dword ptr [ESP + 0x11c]
XOR EDI,dword ptr GS:[0x14]
JNZ 0x0013d7b9
ADD ESP,0x12c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JS 0x0013bd98
MOV EAX,dword ptr [ESP + 0x20]
MOV EBX,dword ptr [EAX + 0x18]
JMP 0x0013b900
MOV EDX,dword ptr [ESI]
MOVZX EAX,word ptr [EDX + 0x8]
AND EAX,0x1f
CMP byte ptr [EBP + EAX*0x1 + 0xfffa8eb8],0x5
JNZ 0x0013bce0
MOV EAX,dword ptr [ESP + 0x10]
LEA EAX,[EDI + EAX*0x4]
MOV dword ptr [ESP + 0x10],EAX
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x20]
CMP byte ptr [EAX + 0xe8],0x0
JNZ 0x0013be10
MOV EDX,dword ptr [EBP + 0x5b8]
TEST EDX,EDX
JZ 0x0013bd78
MOV EAX,dword ptr [EBP + 0x1f9c]
TEST EAX,EAX
JZ 0x0013bb4e
SUB ESP,0xc
PUSH EAX
CALL dword ptr [EBP + 0x614]
ADD ESP,0x10
SUB ESP,0xc
PUSH EDI
CALL dword ptr [EBP + 0x5f0]
SUB dword ptr [EBP + 0x1fdc],0x1
SUB dword ptr [EBP + 0x1fb8],EAX
MOV dword ptr [ESP],EDI
CALL dword ptr [EBP + 0x5e8]
MOV EAX,dword ptr [EBP + 0x1f9c]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0013bdf8
SUB ESP,0xc
PUSH EAX
CALL dword ptr [EBP + 0x61c]
MOV EAX,dword ptr [ESP + 0x30]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0xf8]
JMP 0x0013ba95
CALL 0x0003c930
JMP 0x0013bada
MOV EBX,dword ptr [ESP + 0xe4]
MOV EDX,0x1
MOV EAX,EBX
CALL 0x00079820
TEST EAX,EAX
JNZ 0x0013bbdd
MOV EAX,dword ptr [EBX]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x0013bbdd
SUB ESP,0xc
PUSH EAX
CALL dword ptr [EBP + 0x61c]
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [ESP + 0xf0]
CALL 0x000e7e00
POP EAX
PUSH dword ptr [ESP + 0xf0]
CALL 0x000bfe40
MOV dword ptr [ESP + 0xb4],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0013bb29
CMP dword ptr [ESP + 0x144],0x1
JLE 0x0013baf0
MOV EAX,dword ptr [ESP + 0x20]
CMP dword ptr [EAX + 0x28],0x0
JNZ 0x0013c280
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x18]
MOV EBX,dword ptr [ESI + EAX*0x4 + 0xc]
MOVZX EAX,word ptr [EBX + 0x8]
AND EAX,0x1f
CMP byte ptr [EBP + EAX*0x1 + 0xfffa8eb8],0x5
JZ 0x0013c268
MOV EAX,dword ptr [ESI]
MOVZX EDX,word ptr [EAX + 0x8]
AND EDX,0x1f
CMP byte ptr [EBP + EDX*0x1 + 0xfffa8eb8],0x5
JZ 0x0013bc87
CALL 0x00045540
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,EBX
MOV dword ptr [ESP + 0x18],EDX
CALL 0x00045540
XOR EAX,dword ptr [ESP + 0x8]
XOR EDX,dword ptr [ESP + 0x18]
OR EDX,EAX
JZ 0x0013cd32
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0xc]
MOVZX EAX,byte ptr [EAX + 0x52]
CMP byte ptr [EBP + EAX*0x1 + 0xfffa7f17],0x5
JZ 0x0013c298
MOV ECX,dword ptr [ESP]
MOV EAX,dword ptr [ESP + 0x20]
MOV EDX,ESI
CALL 0x0010b320
MOV ECX,0x1
MOV dword ptr [ESP + 0xa4],EAX
TEST EAX,EAX
JNZ 0x0013bb29
MOV EDX,dword ptr [ESI]
MOVZX EAX,word ptr [EDX + 0x8]
AND EAX,0x1f
CMP byte ptr [EBP + EAX*0x1 + 0xfffa8eb8],0x5
JZ 0x0013d7be
MOV dword ptr [ESP + 0x8],ECX
LEA ESI,[ESI]
LEA ECX,[ESP + 0xa8]
SUB ESP,0xc
PUSH EDI
MOV EAX,dword ptr [ESP + 0x30]
CALL 0x0013b480
MOV dword ptr [ESP + 0xb4],EAX
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x10]
CMP dword ptr [ESP + 0x144],0x1
LEA EDX,[EDI + EDX*0x4]
MOV dword ptr [ESP + 0x10],EDX
JLE 0x0013bb18
TEST EAX,EAX
JNZ 0x0013bb18
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x18]
MOV EAX,dword ptr [ESI + EAX*0x4 + 0x10]
CALL 0x00045540
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JZ 0x0013b9c2
MOV EAX,dword ptr [ESP + 0xa4]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JZ 0x0013bf90
MOV EAX,dword ptr [ESP + 0x20]
CMP byte ptr [EAX + 0xea],0x0
JNZ 0x0013bf70
ADD dword ptr [ESP + 0xa8],0x1
JMP 0x0013bb18
SUB ESP,0xc
PUSH EDI
CALL dword ptr [EBP + 0x5e8]
MOV EAX,dword ptr [ESP + 0x30]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0xf8]
JMP 0x0013ba95
MOV dword ptr [ESP + 0xa4],0x13
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0xf8]
JMP 0x0013ba95
LEA ECX,[ESP + 0xe4]
MOV EDX,0x10
CALL 0x00101610
TEST EAX,EAX
JZ 0x0013bbb0
MOV dword ptr [ESP + 0xa4],EAX
JMP 0x0013bb29
SUB ESP,0x8
PUSH dword ptr [EAX + 0x4]
PUSH dword ptr [EAX]
CALL 0x0003c8b0
ADD ESP,0x10
JMP 0x0013bada
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0xf8]
JMP 0x0013ba95
LEA EAX,[ESP + 0xa4]
SUB ESP,0x8
PUSH dword ptr [ESP + 0xb0]
PUSH EDI
MOV ECX,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [ESP + 0x30]
CALL 0x00111db0
ADD ESP,0x10
JMP 0x0013bb29
MOV ECX,0x8
LEA EDX,[EBP + 0xfffa18cf]
MOV EAX,EBX
CALL 0x00044730
TEST EAX,EAX
JZ 0x0013c2d6
MOV ECX,0x6
LEA EDX,[EBP + 0xfffa3cf6]
MOV EAX,EBX
CALL 0x00044730
TEST EAX,EAX
JNZ 0x0013ba5f
MOVSX EAX,byte ptr [EBX + 0x6]
LEA ESI,[EBX + 0x6]
XOR EBX,EBX
LEA EDX,[EAX + -0x30]
CMP DL,0x9
JBE 0x0013be9c
JMP 0x0013beb1
CMP EBX,0xcccccca
JG 0x0013ba5f
LEA EDX,[EBX + EBX*0x4]
ADD ESI,0x1
LEA EBX,[EAX + EDX*0x2 + -0x30]
MOVSX EAX,byte ptr [ESI]
LEA EDX,[EAX + -0x30]
CMP DL,0x9
JBE 0x0013be90
CMP AL,0x2c
JNZ 0x0013cd80
MOVSX EAX,byte ptr [ESI + 0x1]
TEST AL,AL
JZ 0x0013ba5f
LEA EDX,[EAX + -0x30]
ADD ESI,0x1
CMP DL,0x9
JA 0x0013ba5f
XOR EDI,EDI
JMP 0x0013bee0
CMP EDI,0xcccccca
JG 0x0013bef5
LEA EDX,[EDI + EDI*0x4]
ADD ESI,0x1
LEA EDI,[EAX + EDX*0x2 + -0x30]
MOVSX EAX,byte ptr [ESI]
LEA EDX,[EAX + -0x30]
CMP DL,0x9
JBE 0x0013bed8
CMP EDI,0x1
JLE 0x0013ba5f
TEST AL,AL
JNZ 0x0013ba5f
MOV dword ptr [ESP + 0xe4],0x0
MOV EAX,dword ptr [ESP + 0x20]
CMP byte ptr [EAX + 0xe9],0x0
JZ 0x0013d740
MOV EAX,dword ptr [ESP + 0x20]
MOV ECX,EDI
MOV EDX,EBX
CALL 0x0012d940
MOV dword ptr [ESP + 0xe4],EAX
SUB ESP,0xc
MOV EDI,dword ptr [ESP + 0x2c]
PUSH dword ptr [EDI + 0xf8]
CALL 0x000c0610
MOV EAX,dword ptr [ESP + 0xf4]
MOV dword ptr [EDI + 0xf8],0x0
MOV dword ptr [ESP + 0x5c],EAX
ADD ESP,0x10
XOR EAX,EAX
JMP 0x0013ba71
MOV ECX,dword ptr [ESP + 0x10]
MOV EDX,EAX
LEA EAX,[ESP + 0xa4]
CALL 0x00111bd0
JMP 0x0013bd67
MOV EAX,dword ptr [ESP]
MOV EDX,dword ptr [ESP + 0x20]
MOV ECX,dword ptr [EAX]
MOV EBX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EDX + 0x10c]
MOV EDX,dword ptr [EDX + 0x110]
CMP ECX,EAX
MOV dword ptr [ESP],EAX
MOV EAX,EBX
SBB EAX,EDX
JL 0x0013bfd6
MOV EAX,dword ptr [ESP]
XOR EDX,EBX
XOR EAX,ECX
OR EDX,EAX
JZ 0x0013cd40
MOV EAX,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [ESP + 0x18]
CMP EDX,dword ptr [EAX + 0x114]
JZ 0x0013cd57
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP],ECX
CALL 0x0013aff0
MOV ECX,dword ptr [ESP]
TEST EAX,EAX
JNZ 0x0013c095
MOV EAX,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0xa4],0x0
MOV dword ptr [EAX + 0x114],EDX
MOV EDX,dword ptr [EAX + 0x18]
MOV dword ptr [EAX + 0x110],EBX
XOR EBX,EBX
MOV dword ptr [EAX + 0x10c],ECX
MOV dword ptr [EAX + 0x118],0x0
TEST EDX,EDX
JLE 0x0013c091
MOV dword ptr [ESP],EDI
MOV EDI,dword ptr [ESP + 0x20]
JMP 0x0013c040
LEA EAX,[EBX + 0x1]
ADD EBX,0x2
CMP EDX,EBX
JL 0x0013c290
MOV EBX,EAX
MOV EAX,dword ptr [EDI + 0x20]
CMP byte ptr [EAX + EBX*0x1],0x0
JNZ 0x0013c030
MOV EAX,dword ptr [ESI + EBX*0x4 + 0x8]
CALL 0x0007f6d0
SUB ESP,0x8
MOV EDX,dword ptr [ESP + 0x18]
MOV ECX,EAX
MOV EAX,EDI
LEA EDX,[EDX + EBX*0x4]
PUSH EDX
PUSH EBX
MOV EDX,dword ptr [ESP + 0x28]
CALL 0x001223f0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0013c08a
MOV EAX,dword ptr [ESI + EBX*0x4 + 0x8]
CALL 0x0007f360
MOV EDX,dword ptr [EDI + 0x18]
MOV ECX,dword ptr [ESP + 0x10]
ADD dword ptr [ECX + EDX*0x4],EAX
MOV EDX,dword ptr [EDI + 0x18]
JMP 0x0013c030
MOV dword ptr [ESP + 0x8],EAX
MOV EDI,dword ptr [ESP]
MOV EAX,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0xa4],EAX
JMP 0x0013bd56
MOV ECX,0x7
LEA EDX,[EBP + 0xfffa3cda]
MOV EAX,EBX
CALL 0x00044730
TEST EAX,EAX
JNZ 0x0013be5a
MOV EAX,dword ptr [ESP + 0x20]
XOR EDX,EDX
CALL 0x0010da50
MOV dword ptr [ESP + 0x4c],EAX
MOV dword ptr [ESP + 0xd4],EAX
TEST EAX,EAX
JZ 0x0013cd92
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0xf8]
JMP 0x0013ba71
MOV ECX,0xf
LEA EDX,[EBP + 0xfffa3ce2]
MOV EAX,EBX
CALL 0x00044730
TEST EAX,EAX
JZ 0x0013c2f2
MOV ECX,0x6
LEA EDX,[EBP + 0xfffa3cf6]
MOV EAX,EBX
CALL 0x00044730
TEST EAX,EAX
JZ 0x0013be74
MOV ECX,0xa
LEA EDX,[EBP + 0xfffa3cf2]
MOV EAX,EBX
CALL 0x00044730
TEST EAX,EAX
JNZ 0x0013ba5f
MOV dword ptr [ESP + 0xd4],0x0
LEA ECX,[EBX + 0xa]
MOV dword ptr [ESP + 0xe4],0x0
MOVSX EDX,byte ptr [EBX + 0xa]
LEA EBX,[EDX + -0x30]
CMP BL,0x9
JBE 0x0013c177
JMP 0x0013d781
CMP EAX,0xcccccca
JG 0x0013c18c
ADD ECX,0x1
LEA EAX,[EAX + EAX*0x4]
LEA EAX,[EDX + EAX*0x2 + -0x30]
MOVSX EDX,byte ptr [ECX]
LEA EBX,[EDX + -0x30]
CMP BL,0x9
JBE 0x0013c170
CMP EAX,0x1
JZ 0x0013cd6e
CMP EAX,0x10
JG 0x0013cd6e
MOV EDI,dword ptr [ESP + 0x20]
MOV dword ptr [EDI + 0x30],EAX
CMP byte ptr [EDI + 0xe9],0x0
JNZ 0x0013c1eb
SUB ESP,0xc
LEA EAX,[EBP + 0xfffb2eec]
PUSH dword ptr [EDI + 0x14]
PUSH dword ptr [EDI + 0x10]
PUSH EAX
PUSH dword ptr [EDI + 0xc]
LEA EAX,[ESP + 0xf0]
PUSH EAX
CALL 0x00107d80
MOV EAX,dword ptr [ESP + 0xf4]
MOV dword ptr [ESP + 0x6c],EAX
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x0013c0e0
MOV byte ptr [EDI + 0xe9],0x1
MOV EDI,dword ptr [ESP + 0x20]
LEA ECX,[ESP + 0xe4]
MOV EDX,0x17
MOV EAX,EDI
CALL 0x00101610
MOV dword ptr [ESP + 0x4c],EAX
MOV dword ptr [ESP + 0xd4],EAX
TEST EAX,EAX
JNZ 0x0013c0e0
MOV EAX,dword ptr [ESP + 0xe4]
MOV EDX,0x2
XOR ECX,ECX
CALL 0x00079e80
MOV EDX,dword ptr [EDI + 0x30]
MOV EAX,dword ptr [ESP + 0xe4]
MOV ECX,EDX
SAR ECX,0x1f
CALL 0x00079e00
SUB ESP,0xc
PUSH dword ptr [ESP + 0xf0]
CALL 0x000e7e00
POP EBX
PUSH dword ptr [ESP + 0xf0]
CALL 0x000bfe40
MOV dword ptr [ESP + 0x5c],EAX
ADD ESP,0x10
JMP 0x0013c0e0
MOV EBX,dword ptr [ESI + 0x4]
MOVZX EAX,word ptr [EBX + 0x8]
AND EAX,0x1f
CMP byte ptr [EBP + EAX*0x1 + 0xfffa8eb8],0x5
JNZ 0x0013bc50
XOR ECX,ECX
JMP 0x0013bcc2
MOV EDI,dword ptr [ESP]
JMP 0x0013c091
LEA ECX,[ESP + 0xa8]
SUB ESP,0xc
MOV EDX,EBX
PUSH EDI
MOV EAX,dword ptr [ESP + 0x30]
CALL 0x0013b480
XOR ECX,ECX
MOV dword ptr [ESP + 0xb4],EAX
ADD ESP,0x10
JMP 0x0013bcba
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x4c],0x7
MOV EAX,dword ptr [EAX + 0xf8]
JMP 0x0013ba71
MOV EDI,dword ptr [ESP + 0x20]
XOR EDX,EDX
MOV EAX,EDI
CALL 0x00139450
MOV dword ptr [ESP + 0x4c],EAX
MOV EAX,dword ptr [EDI + 0xf8]
JMP 0x0013ba71
MOV EAX,dword ptr [ESP + 0x20]
MOV EDX,0x1b
LEA ECX,[ESP + 0xac]
MOV dword ptr [ESP + 0xac],0x0
CALL 0x00101610
MOV dword ptr [ESP + 0x4c],EAX
TEST EAX,EAX
JNZ 0x0013c0e0
MOV EDI,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [ESP + 0xac]
MOV EDX,dword ptr [EDI + 0x114]
MOV ECX,EDX
SAR ECX,0x1f
CALL 0x00079e80
MOV EDX,dword ptr [EDI + 0xfc]
MOV EAX,dword ptr [ESP + 0xac]
MOV ECX,EDX
SAR ECX,0x1f
CALL 0x00079e00
MOV dword ptr [ESP + 0x6c],0x0
MOV dword ptr [ESP + 0x88],0x0
LEA ESI,[ESI]
NOP
SUB ESP,0xc
PUSH dword ptr [ESP + 0xb8]
CALL 0x000e7e00
ADD ESP,0x10
CMP EAX,0x64
JNZ 0x0013d186
MOV EBX,dword ptr [ESP + 0xac]
XOR EDX,EDX
MOV EAX,EBX
CALL 0x0004c5d0
CALL 0x00045540
MOV dword ptr [ESP + 0x34],EAX
MOV EAX,EBX
CALL 0x0004c6c0
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0xfc]
TEST EAX,EAX
JLE 0x0013c368
LEA EAX,[ESP + 0xe4]
MOV dword ptr [ESP + 0x28],0x0
MOV dword ptr [ESP + 0x30],EAX
LEA EAX,[ESP + 0xd4]
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x40],EAX
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [ESP + 0x40]
MOV EDI,dword ptr [ESP + 0x30]
MOV ECX,0xe
SUB ESP,0x8
MOV dword ptr [EAX],0x0
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x8],0x0
XOR EAX,EAX
STOSD.REP ES:EDI
MOV dword ptr [ESP + 0xe8],0x13
PUSH dword ptr [ESP + 0x38]
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH -0x2
MOV ECX,dword ptr [ESP + 0x48]
MOV EDX,dword ptr [ESP + 0x54]
MOV EAX,dword ptr [ESP + 0x40]
CALL 0x0012aa30
MOV dword ptr [ESP + 0x30],EAX
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0013c850
MOV EAX,dword ptr [ESP + 0xe8]
MOV ESI,dword ptr [ESP + 0xe4]
TEST EAX,EAX
JLE 0x0013c5e2
XOR EDI,EDI
JMP 0x0013c4c6
MOV EAX,dword ptr [EBP + 0x1f9c]
TEST EAX,EAX
JZ 0x0013c475
SUB ESP,0xc
PUSH EAX
CALL dword ptr [ESI + EBP*0x1 + 0x5c]
ADD ESP,0x10
SUB ESP,0xc
PUSH EBX
CALL dword ptr [ESI + EBP*0x1 + 0x38]
SUB dword ptr [EBP + 0x1fdc],0x1
SUB dword ptr [EBP + 0x1fb8],EAX
MOV dword ptr [ESP],EBX
CALL dword ptr [ESI + EBP*0x1 + 0x30]
MOV EAX,dword ptr [EBP + 0x1f9c]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0013c7a0
SUB ESP,0xc
PUSH EAX
CALL dword ptr [ESI + EBP*0x1 + 0x64]
MOV EAX,dword ptr [ESP + 0xf8]
MOV ESI,dword ptr [ESP + 0xf4]
ADD ESP,0x10
ADD EDI,0x1
CMP EDI,EAX
JGE 0x0013c5e2
MOV EBX,dword ptr [ESI + EDI*0x4]
TEST EBX,EBX
JZ 0x0013c4bb
MOV EAX,dword ptr [EBX + 0x38]
TEST EAX,EAX
JZ 0x0013c7b8
LEA ESI,[0x5b8]
CMP byte ptr [EBX + 0x5],0x0
JZ 0x0013c700
MOV EDX,dword ptr [EBX + 0x34]
TEST EDX,EDX
JZ 0x0013c5b3
MOV EAX,dword ptr [EDX + 0x14]
MOV dword ptr [ESP],EAX
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x0013c513
MOV dword ptr [ESP + 0x8],EDX
SUB ESP,0xc
PUSH EAX
CALL dword ptr [ESI + EBP*0x1 + 0x5c]
MOV EDX,dword ptr [ESP + 0x18]
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [EDX + 0x10]
MOV dword ptr [ESP + 0x18],EDX
CALL 0x000c0450
ADD ESP,0x10
MOV EAX,dword ptr [ESP]
MOV EDX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [EAX + 0x1e0]
TEST ECX,ECX
JNZ 0x0013c780
MOV EAX,dword ptr [ESI + EBP*0x1]
TEST EAX,EAX
JZ 0x0013c790
MOV EAX,dword ptr [EBP + 0x1f9c]
TEST EAX,EAX
JZ 0x0013c562
MOV dword ptr [ESP + 0x8],EDX
SUB ESP,0xc
PUSH EAX
CALL dword ptr [ESI + EBP*0x1 + 0x5c]
MOV EDX,dword ptr [ESP + 0x18]
ADD ESP,0x10
SUB ESP,0xc
PUSH EDX
MOV dword ptr [ESP + 0x18],EDX
CALL dword ptr [ESI + EBP*0x1 + 0x38]
MOV EDX,dword ptr [ESP + 0x18]
SUB dword ptr [EBP + 0x1fb8],EAX
SUB dword ptr [EBP + 0x1fdc],0x1
MOV dword ptr [ESP],EDX
CALL dword ptr [ESI + EBP*0x1 + 0x30]
MOV EAX,dword ptr [EBP + 0x1f9c]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0013c59e
SUB ESP,0xc
PUSH EAX
CALL dword ptr [ESI + EBP*0x1 + 0x64]
ADD ESP,0x10
MOV EAX,dword ptr [ESP]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x0013c5b3
SUB ESP,0xc
PUSH EAX
CALL dword ptr [ESI + EBP*0x1 + 0x64]
ADD ESP,0x10
MOV EAX,dword ptr [ESI + EBP*0x1]
TEST EAX,EAX
JNZ 0x0013c460
SUB ESP,0xc
ADD EDI,0x1
PUSH EBX
CALL dword ptr [ESI + EBP*0x1 + 0x30]
MOV EAX,dword ptr [ESP + 0xf8]
MOV ESI,dword ptr [ESP + 0xf4]
ADD ESP,0x10
CMP EDI,EAX
JL 0x0013c4c6
TEST ESI,ESI
JZ 0x0013c645
MOV EDI,dword ptr [EBP + 0x5b8]
TEST EDI,EDI
JZ 0x0013ccf8
MOV EAX,dword ptr [EBP + 0x1f9c]
TEST EAX,EAX
JZ 0x0013c60b
SUB ESP,0xc
PUSH EAX
CALL dword ptr [EBP + 0x614]
ADD ESP,0x10
SUB ESP,0xc
PUSH ESI
CALL dword ptr [EBP + 0x5f0]
SUB dword ptr [EBP + 0x1fdc],0x1
SUB dword ptr [EBP + 0x1fb8],EAX
MOV dword ptr [ESP],ESI
CALL dword ptr [EBP + 0x5e8]
MOV EAX,dword ptr [EBP + 0x1f9c]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0013c645
SUB ESP,0xc
PUSH EAX
CALL dword ptr [EBP + 0x61c]
ADD ESP,0x10
MOV EBX,dword ptr [ESP + 0xf4]
TEST EBX,EBX
JZ 0x0013c6af
MOV ESI,dword ptr [EBP + 0x5b8]
TEST ESI,ESI
JZ 0x0013cce0
MOV EAX,dword ptr [EBP + 0x1f9c]
TEST EAX,EAX
JZ 0x0013c675
SUB ESP,0xc
PUSH EAX
CALL dword ptr [EBP + 0x614]
ADD ESP,0x10
SUB ESP,0xc
PUSH EBX
CALL dword ptr [EBP + 0x5f0]
SUB dword ptr [EBP + 0x1fdc],0x1
SUB dword ptr [EBP + 0x1fb8],EAX
MOV dword ptr [ESP],EBX
CALL dword ptr [EBP + 0x5e8]
MOV EAX,dword ptr [EBP + 0x1f9c]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0013c6af
SUB ESP,0xc
PUSH EAX
CALL dword ptr [EBP + 0x61c]
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x20]
ADD dword ptr [ESP + 0x28],0x1
ADC dword ptr [ESP + 0x2c],0x0
MOV EDI,dword ptr [ESP + 0x28]
CMP dword ptr [EAX + 0xfc],EDI
JG 0x0013c3e0
MOV EBX,dword ptr [ESP + 0x10]
TEST EBX,EBX
JZ 0x0013c368
SUB ESP,0xc
PUSH dword ptr [ESP + 0xb8]
CALL 0x000bfe40
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x4c],EAX
JMP 0x0013c0e0
MOV EDX,dword ptr [EBX + 0x28]
TEST EDX,EDX
JZ 0x0013c4e8
MOV EAX,dword ptr [ESI + EBP*0x1]
TEST EAX,EAX
JZ 0x0013c840
MOV EAX,dword ptr [EBP + 0x1f9c]
TEST EAX,EAX
JZ 0x0013c732
MOV dword ptr [ESP],EDX
SUB ESP,0xc
PUSH EAX
CALL dword ptr [ESI + EBP*0x1 + 0x5c]
MOV EDX,dword ptr [ESP + 0x10]
ADD ESP,0x10
SUB ESP,0xc
PUSH EDX
MOV dword ptr [ESP + 0x10],EDX
CALL dword ptr [ESI + EBP*0x1 + 0x38]
MOV EDX,dword ptr [ESP + 0x10]
SUB dword ptr [EBP + 0x1fb8],EAX
SUB dword ptr [EBP + 0x1fdc],0x1
MOV dword ptr [ESP],EDX
CALL dword ptr [ESI + EBP*0x1 + 0x30]
MOV EAX,dword ptr [EBP + 0x1f9c]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0013c4e8
SUB ESP,0xc
PUSH EAX
CALL dword ptr [ESI + EBP*0x1 + 0x64]
ADD ESP,0x10
JMP 0x0013c4e8
CALL 0x0003a540
JMP 0x0013c59e
SUB ESP,0xc
PUSH EDX
CALL dword ptr [ESI + EBP*0x1 + 0x30]
ADD ESP,0x10
JMP 0x0013c59e
MOV EAX,dword ptr [ESP + 0xe8]
MOV ESI,dword ptr [ESP + 0xe4]
JMP 0x0013c4bb
MOV EDX,dword ptr [EBX + 0x40]
LEA ESI,[0x5b8]
TEST EDX,EDX
JZ 0x0013c4de
MOV EAX,dword ptr [EBP + 0x5b8]
TEST EAX,EAX
JZ 0x0013cd20
MOV EAX,dword ptr [EBP + 0x1f9c]
TEST EAX,EAX
JZ 0x0013c7f5
MOV dword ptr [ESP],EDX
SUB ESP,0xc
PUSH EAX
CALL dword ptr [EBP + 0x614]
MOV EDX,dword ptr [ESP + 0x10]
ADD ESP,0x10
SUB ESP,0xc
PUSH EDX
MOV dword ptr [ESP + 0x10],EDX
CALL dword ptr [EBP + 0x5f0]
MOV EDX,dword ptr [ESP + 0x10]
SUB dword ptr [EBP + 0x1fb8],EAX
SUB dword ptr [EBP + 0x1fdc],0x1
MOV dword ptr [ESP],EDX
CALL dword ptr [EBP + 0x5e8]
MOV EAX,dword ptr [EBP + 0x1f9c]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0013c4de
SUB ESP,0xc
PUSH EAX
CALL dword ptr [EBP + 0x61c]
ADD ESP,0x10
JMP 0x0013c4de
SUB ESP,0xc
PUSH EDX
CALL dword ptr [ESI + EBP*0x1 + 0x30]
ADD ESP,0x10
JMP 0x0013c4e8
MOV EAX,dword ptr [ESP + 0x40]
SUB ESP,0xc
MOV dword ptr [ESP + 0xfc],EAX
PUSH dword ptr [ESP + 0xe4]
MOV ECX,dword ptr [ESP + 0xe4]
MOV EDX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [ESP + 0x30]
CALL 0x0012cf60
MOV dword ptr [ESP + 0x20],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0013c441
MOV dword ptr [ESP + 0x38],0x0
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x44],EBP
LEA ESI,[ESI]
MOV EDX,dword ptr [ESP + 0x30]
MOV EAX,dword ptr [ESP + 0x20]
CALL 0x0012ba30
CMP EAX,0x64
JNZ 0x0013cc80
MOV EDI,dword ptr [ESP + 0x114]
MOV EBX,dword ptr [ESP + 0x118]
LEA EDX,[ESP + 0xb8]
MOV dword ptr [ESP + 0xb8],0x0
MOV dword ptr [ESP + 0xbc],0x0
MOV dword ptr [ESP + 0xc0],0x0
ADD EBX,EDI
MOV EAX,EDI
MOV dword ptr [ESP + 0x8],EBX
MOV dword ptr [ESP + 0xc4],0x0
CALL 0x0003e400
MOV dword ptr [ESP],0x0
ADD EDI,EAX
MOV dword ptr [ESP + 0x4],0x0
CMP EBX,EDI
JBE 0x0013c8a0
MOV EBX,EDI
LEA ESI,[ESI]
NOP
MOV dword ptr [ESP + 0xc8],0x0
MOV dword ptr [ESP + 0xcc],0x0
MOVZX EAX,byte ptr [EBX]
TEST AL,AL
JNS 0x0013cac0
MOVZX ESI,byte ptr [EBX + 0x1]
AND EAX,0x7f
SHL ESI,0x7
OR ESI,EAX
TEST ESI,0x4000
JZ 0x0013cc20
MOVZX EAX,byte ptr [EBX + 0x2]
AND ESI,0x3fff
SHL EAX,0xe
OR ESI,EAX
TEST ESI,0x200000
JZ 0x0013cc40
MOVZX EAX,byte ptr [EBX + 0x3]
AND ESI,0x1fffff
SHL EAX,0x15
OR ESI,EAX
TEST ESI,0x10000000
JZ 0x0013cc60
MOVZX ECX,byte ptr [EBX + 0x4]
XOR EDX,EDX
AND ESI,0xfffffff
XOR EDI,EDI
MOV EAX,ECX
AND EAX,0x7f
SHLD EDX,EAX,0x1c
SHL EAX,0x1c
ADD ESI,EAX
ADC EDI,EDX
TEST CL,CL
JNS 0x0013cca0
MOVZX ECX,byte ptr [EBX + 0x5]
MOV EAX,ECX
AND EAX,0x7f
MOV EDX,EAX
MOV EAX,0x0
SHL EDX,0x3
ADD ESI,EAX
ADC EDI,EDX
TEST CL,CL
JNS 0x0013ccb0
MOVZX ECX,byte ptr [EBX + 0x6]
MOV EAX,ECX
AND EAX,0x7f
MOV EDX,EAX
MOV EAX,0x0
SHL EDX,0xa
ADD ESI,EAX
ADC EDI,EDX
TEST CL,CL
JNS 0x0013ccc0
MOVZX ECX,byte ptr [EBX + 0x7]
MOV EAX,ECX
AND EAX,0x7f
MOV EDX,EAX
MOV EAX,0x0
SHL EDX,0x11
ADD ESI,EAX
ADC EDI,EDX
TEST CL,CL
JNS 0x0013ccd0
MOVZX ECX,byte ptr [EBX + 0x8]
MOV EAX,ECX
AND EAX,0x7f
MOV EDX,EAX
MOV EAX,0x0
SHL EDX,0x18
ADD ESI,EAX
ADC EDI,EDX
TEST CL,CL
JNS 0x0013cd10
MOVZX EAX,byte ptr [EBX + 0x9]
LEA ECX,[EBX + 0xa]
AND EAX,0x7f
MOV EDX,EAX
XOR EAX,EAX
SHL EDX,0x1f
ADD ESI,EAX
ADC EDI,EDX
MOV dword ptr [ESP + 0xc8],ESI
SUB ECX,EBX
MOV dword ptr [ESP + 0xcc],EDI
ADD EBX,ECX
CMP dword ptr [ESP + 0x8],EBX
JBE 0x0013c8a0
MOV EAX,0x1
CMP EAX,ESI
MOV EAX,0x0
SBB EAX,EDI
JC 0x0013cae0
MOV dword ptr [ESP + 0xc0],0x0
MOV EDX,EDI
MOV dword ptr [ESP + 0xc4],0x0
OR EDX,ESI
JZ 0x0013cbe8
MOV EAX,EBX
LEA EDX,[ESP + 0xc0]
CALL 0x0003e400
ADD EBX,EAX
CMP dword ptr [ESP + 0x8],EBX
JBE 0x0013c8a0
MOV dword ptr [ESP],0x0
MOV dword ptr [ESP + 0x4],0x0
JMP 0x0013c920
MOVZX ESI,AL
XOR EDI,EDI
MOV ECX,0x1
MOV dword ptr [ESP + 0xc8],ESI
MOV dword ptr [ESP + 0xcc],EDI
JMP 0x0013ca56
ADD ESI,-0x2
MOV EAX,dword ptr [ESP + 0x10c]
MOV EBP,dword ptr [ESP + 0xc0]
ADC EDI,-0x1
ADD dword ptr [ESP],ESI
MOV ESI,dword ptr [ESP + 0xb8]
ADC dword ptr [ESP + 0x4],EDI
MOV EDI,dword ptr [ESP + 0xbc]
MOV dword ptr [ESP + 0x24],EAX
MOV EAX,ESI
MOV ECX,dword ptr [ESP + 0x110]
MOV EDX,EDI
SHL EAX,0x3
MOV dword ptr [ESP + 0x18],EBP
SHLD EDX,ESI,0x3
ADD ESI,EAX
MOV EAX,dword ptr [ESP + 0x34]
ADC EDI,EDX
CDQ
ADD ESI,EAX
ADC EDI,EDX
MOV EAX,ESI
MOV EDX,EDI
SHL EAX,0x3
SHLD EDX,ESI,0x3
ADD EAX,ESI
ADC EDX,EDI
ADD EAX,dword ptr [ESP + 0x28]
ADC EDX,dword ptr [ESP + 0x2c]
SAR EBP,0x1f
MOV ESI,EAX
MOV EDI,EDX
MOV dword ptr [ESP + 0x1c],EBP
SHL ESI,0x3
SHLD EDI,EAX,0x3
ADD EAX,dword ptr [ESP + 0x18]
ADC EDX,dword ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x10],ESI
MOV ESI,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x14],EDI
MOV EDI,dword ptr [ESP + 0x14]
ADD ESI,EAX
ADC EDI,EDX
MOV EAX,ESI
MOV EDX,EDI
SHL EAX,0x3
SHLD EDX,ESI,0x3
ADD ESI,EAX
MOV EAX,dword ptr [ESP]
ADC EDI,EDX
CDQ
ADD EAX,ESI
ADC EDX,EDI
MOV EDI,EAX
MOV EBP,EDX
TEST ECX,ECX
JLE 0x0013cbd8
MOV ESI,dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x18],EBX
LEA EAX,[ESI + ECX*0x1]
MOV dword ptr [ESP + 0x10],EAX
LEA ESI,[ESI]
NOP
MOVSX ECX,byte ptr [ESI]
MOV EAX,EDI
MOV EDX,EBP
SHL EAX,0x3
SHLD EDX,EDI,0x3
MOV EBX,ECX
SAR EBX,0x1f
ADD EAX,ECX
ADC EDX,EBX
ADD EDI,EAX
ADC EBP,EDX
ADD ESI,0x1
CMP dword ptr [ESP + 0x10],ESI
JNZ 0x0013cbb0
MOV EBX,dword ptr [ESP + 0x18]
XOR dword ptr [ESP + 0x38],EDI
XOR dword ptr [ESP + 0x3c],EBP
JMP 0x0013c920
LEA EDX,[ESP + 0xc8]
MOV EAX,EBX
CALL 0x0003e400
MOV EDX,dword ptr [ESP + 0xcc]
ADD EBX,EAX
MOV EAX,dword ptr [ESP + 0xc8]
ADD dword ptr [ESP + 0xb8],EAX
ADC dword ptr [ESP + 0xbc],EDX
JMP 0x0013caa2
XOR EDI,EDI
MOV dword ptr [ESP + 0xc8],ESI
MOV ECX,0x2
MOV dword ptr [ESP + 0xcc],EDI
JMP 0x0013ca56
XOR EDI,EDI
MOV dword ptr [ESP + 0xc8],ESI
MOV ECX,0x3
MOV dword ptr [ESP + 0xcc],EDI
JMP 0x0013ca56
XOR EDI,EDI
MOV dword ptr [ESP + 0xc8],ESI
MOV ECX,0x4
MOV dword ptr [ESP + 0xcc],EDI
JMP 0x0013ca56
MOV EDI,dword ptr [ESP + 0x38]
MOV EBP,dword ptr [ESP + 0x44]
MOV dword ptr [ESP + 0x10],EAX
XOR dword ptr [ESP + 0x6c],EDI
MOV EDI,dword ptr [ESP + 0x3c]
XOR dword ptr [ESP + 0x88],EDI
JMP 0x0013c441
LEA ECX,[EBX + 0x5]
JMP 0x0013ca46
LEA ECX,[EBX + 0x6]
JMP 0x0013ca46
LEA ECX,[EBX + 0x7]
JMP 0x0013ca46
LEA ECX,[EBX + 0x8]
JMP 0x0013ca46
SUB ESP,0xc
PUSH EBX
CALL dword ptr [EBP + 0x5e8]
ADD ESP,0x10
JMP 0x0013c6af
SUB ESP,0xc
PUSH ESI
CALL dword ptr [EBP + 0x5e8]
ADD ESP,0x10
JMP 0x0013c645
LEA ECX,[EBX + 0x9]
JMP 0x0013ca46
SUB ESP,0xc
PUSH EDX
CALL dword ptr [EBP + 0x5e8]
ADD ESP,0x10
JMP 0x0013c4de
MOV EAX,dword ptr [ESP + 0xa4]
XOR ECX,ECX
JMP 0x0013bcba
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x118]
TEST EAX,EAX
JZ 0x0013bfd6
JMP 0x0013bfc2
MOV EDX,dword ptr [EAX + 0x104]
CMP dword ptr [EAX + 0x108],EDX
JG 0x0013bfd6
JMP 0x0013bfed
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [EAX + 0x30],0x8
MOV EDI,EAX
JMP 0x0013c1a5
TEST AL,AL
JNZ 0x0013ba5f
MOV EDI,0x8
JMP 0x0013bf06
MOV dword ptr [ESP + 0xe4],0x0
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0x28]
PUSH dword ptr [EAX + 0xdc]
LEA EAX,[EBP + 0xfffa3b25]
PUSH EAX
CALL 0x000a3060
ADD ESP,0x10
MOV EBX,EAX
TEST EAX,EAX
JZ 0x0013d10b
MOV EDI,dword ptr [ESP + 0x20]
MOV ECX,0xffffffff
MOV EAX,dword ptr [EDI + 0xc]
PUSH 0x0
LEA EDX,[ESP + 0xe8]
PUSH EDX
MOV EDX,EBX
PUSH 0x0
PUSH 0x80
CALL 0x00100700
MOV dword ptr [ESP],EBX
MOV dword ptr [ESP + 0xe4],EAX
CALL 0x00044000
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0xd4]
TEST ECX,ECX
JNZ 0x0013d116
MOV dword ptr [ESP + 0x20],EDI
MOV ESI,dword ptr [EDI + 0x18]
CALL 0x00067fc0
TEST EAX,EAX
JNZ 0x0013d10b
MOV EDI,ESI
MOV EBX,0xc
SAR EDI,0x1f
MOV EAX,EBX
ADD ESI,0x1
ADC EDI,0x0
MUL ESI
IMUL ECX,EDI,0xc
MOV EDI,EDX
MOV ESI,EAX
ADD EDI,ECX
MOV EDX,EDI
CALL 0x00055780
MOV dword ptr [ESP],EAX
TEST EAX,EAX
JZ 0x0013d10b
PUSH EDX
MOV EBX,EBP
PUSH ESI
MOV ESI,EAX
PUSH 0x0
PUSH EAX
CALL 0x00015440
MOV EDI,dword ptr [ESP + 0x30]
MOV EAX,dword ptr [EDI + 0x18]
LEA EAX,[EAX*0x4 + 0x4]
LEA EDX,[ESI + EAX*0x1]
ADD EAX,EDX
MOV dword ptr [ESP + 0x38],EDX
MOV dword ptr [ESP + 0x44],EAX
ADD ESP,0x10
LEA EAX,[ESP + 0xd4]
MOV dword ptr [ESP + 0x4c],0x0
MOV dword ptr [ESP + 0x30],EAX
LEA ESI,[ESI]
MOV ESI,dword ptr [ESP + 0xd4]
TEST ESI,ESI
JNZ 0x0013d12d
SUB ESP,0xc
PUSH dword ptr [ESP + 0xf0]
CALL 0x000e7e00
ADD ESP,0x10
CMP EAX,0x64
JNZ 0x0013d12d
MOV EAX,dword ptr [EDI + 0x2c]
MOV EBX,dword ptr [ESP + 0xe4]
MOV dword ptr [ESP + 0x8],0x0
TEST EAX,EAX
JZ 0x0013cef4
MOV EAX,dword ptr [EDI + 0x18]
LEA EDX,[EAX + 0x1]
MOV EAX,EBX
CALL 0x0004c5d0
CALL 0x00045540
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,EBX
CALL 0x0004c6c0
MOV EBX,dword ptr [ESP + 0xe4]
MOV EAX,EBX
CALL 0x0005b180
MOV EBX,EAX
MOV EAX,dword ptr [EDI + 0x10c]
MOV ECX,EDX
MOV EDX,dword ptr [EDI + 0x110]
CMP EBX,EAX
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,ECX
SBB EAX,EDX
JL 0x0013cf37
MOV EAX,dword ptr [ESP + 0x10]
XOR EDX,ECX
XOR EAX,EBX
OR EDX,EAX
JZ 0x0013d0e1
MOV EAX,dword ptr [ESP + 0x8]
CMP EAX,dword ptr [EDI + 0x114]
JZ 0x0013d0f4
MOV EAX,EDI
MOV dword ptr [ESP + 0x10],ECX
CALL 0x0013aff0
MOV ECX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JNZ 0x0013cf6c
MOV EAX,dword ptr [ESP + 0x8]
MOV dword ptr [EDI + 0x10c],EBX
MOV dword ptr [EDI + 0x110],ECX
MOV dword ptr [EDI + 0x118],0x0
MOV dword ptr [EDI + 0x114],EAX
XOR EAX,EAX
MOV dword ptr [ESP + 0xd4],EAX
MOV EAX,dword ptr [EDI + 0x18]
SUB ESP,0x4
MOV EBX,EBP
LEA EAX,[EAX*0x4 + 0x4]
PUSH EAX
PUSH 0x0
PUSH dword ptr [ESP + 0xc]
CALL 0x00015440
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xd4]
TEST EAX,EAX
JNZ 0x0013d062
MOV EAX,dword ptr [EDI + 0x18]
MOV EDX,EAX
TEST EAX,EAX
JLE 0x0013d091
XOR EBX,EBX
MOV dword ptr [ESP + 0x24],ESI
JMP 0x0013cfc4
MOV EDX,EAX
MOV EBX,ESI
CMP EAX,ESI
JLE 0x0013d08d
MOV EDX,dword ptr [EDI + 0x20]
LEA ESI,[EBX + 0x1]
CMP byte ptr [EDX + EBX*0x1],0x0
JNZ 0x0013cfb8
MOV ECX,dword ptr [ESP + 0xe4]
MOV EDX,ESI
MOV EAX,ECX
MOV dword ptr [ESP + 0x18],ECX
CALL 0x0004c5d0
CALL 0x0007f6d0
MOV ECX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,ECX
CALL 0x0004c6c0
SUB ESP,0x8
MOV EDX,dword ptr [ESP + 0x8]
LEA EAX,[EDX + EBX*0x4]
PUSH EAX
MOV EAX,EDI
PUSH EBX
MOV ECX,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [ESP + 0x18]
CALL 0x001223f0
MOV EBX,dword ptr [ESP + 0xf4]
MOV EDX,ESI
MOV dword ptr [ESP + 0xe4],EAX
MOV EAX,EBX
CALL 0x0004c5d0
CALL 0x0007f360
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,EBX
CALL 0x0004c6c0
MOV ECX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EDI + 0x18]
MOV EDX,dword ptr [ESP + 0x20]
ADD ESP,0x10
ADD dword ptr [ECX + EAX*0x4],EDX
MOV EAX,dword ptr [ESP + 0xd4]
TEST EAX,EAX
JNZ 0x0013d05e
MOV EAX,dword ptr [EDI + 0x18]
JMP 0x0013cfb8
MOV ESI,dword ptr [ESP + 0x24]
CMP byte ptr [EDI + 0xea],0x0
JNZ 0x0013d0c3
SUB ESP,0xc
PUSH dword ptr [ESP + 0xf0]
CALL 0x000c0450
MOV dword ptr [ESP + 0xf4],0x0
ADD ESP,0x10
JMP 0x0013ce90
MOV ESI,dword ptr [ESP + 0x24]
CMP byte ptr [EDI + 0xea],0x0
JNZ 0x0013d0c3
ADD dword ptr [ESP + 0x4c],0x1
TEST EDX,EDX
JS 0x0013ce90
MOV ECX,dword ptr [ESP]
MOV EAX,dword ptr [ESP + 0x28]
NOP
MOV EDX,dword ptr [ECX + ESI*0x4]
ADD dword ptr [EAX + ESI*0x4],EDX
ADD ESI,0x1
CMP ESI,dword ptr [EDI + 0x18]
JLE 0x0013d0b0
JMP 0x0013ce90
MOV ECX,dword ptr [ESP]
MOV EAX,dword ptr [ESP + 0x30]
MOV EDX,EDI
CALL 0x00111bd0
MOV EBX,dword ptr [ESP + 0xd4]
TEST EBX,EBX
JNZ 0x0013d06b
MOV EDX,dword ptr [EDI + 0x18]
JMP 0x0013d09a
MOV EAX,dword ptr [EDI + 0x118]
TEST EAX,EAX
JZ 0x0013cf37
JMP 0x0013cf27
MOV EAX,dword ptr [EDI + 0x104]
CMP dword ptr [EDI + 0x108],EAX
JG 0x0013cf37
JMP 0x0013cf4a
MOV dword ptr [ESP + 0xd4],0x7
MOV dword ptr [ESP + 0x34],0x0
MOV dword ptr [ESP + 0x28],0x0
MOV dword ptr [ESP],0x0
MOV EAX,dword ptr [ESP + 0x20]
CMP byte ptr [EAX + 0xe8],0x0
JNZ 0x0013d793
SUB ESP,0xc
PUSH dword ptr [ESP + 0xc]
CALL 0x00044000
MOV EAX,dword ptr [ESP + 0xf4]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0013d176
SUB ESP,0xc
PUSH EAX
CALL 0x000c0450
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xd4]
TEST EDX,EDX
JNZ 0x0013d176
MOV dword ptr [ESP + 0xd4],EAX
MOV EAX,dword ptr [ESP + 0xd4]
MOV dword ptr [ESP + 0x4c],EAX
JMP 0x0013c0e0
SUB ESP,0xc
PUSH dword ptr [ESP + 0xb8]
CALL 0x000bfe40
MOV dword ptr [ESP + 0x5c],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0013c0e0
MOV EDI,dword ptr [ESP + 0x20]
SUB ESP,0x8
MOV EAX,dword ptr [EDI + 0x24]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0xb8],0x0
MOV dword ptr [ESP + 0x50],EAX
LEA EAX,[EBP + 0xfffa3b25]
PUSH dword ptr [EDI + 0xdc]
PUSH EAX
CALL 0x000a3060
ADD ESP,0x10
MOV EBX,EAX
TEST EAX,EAX
JZ 0x0013d71b
MOV EAX,dword ptr [ESP + 0x20]
OR ECX,0xffffffff
MOV EAX,dword ptr [EAX + 0xc]
PUSH 0x0
LEA EDX,[ESP + 0xb4]
PUSH EDX
MOV EDX,EBX
PUSH 0x0
PUSH 0x80
CALL 0x00100700
MOV dword ptr [ESP],EBX
MOV dword ptr [ESP + 0x5c],EAX
MOV EDI,EAX
CALL 0x00044000
MOV EBP,dword ptr [ESP + 0xc0]
ADD ESP,0x10
MOV EBX,dword ptr [ESP + 0x4c]
MOV dword ptr [ESP + 0x50],0x0
MOV dword ptr [ESP + 0x54],0x0
TEST EDI,EDI
JNZ 0x0013d4fe
SUB ESP,0xc
PUSH EBP
CALL 0x000e7e00
ADD ESP,0x10
CMP EAX,0x64
JNZ 0x0013d6c5
MOV EBX,dword ptr [ESP + 0xb0]
XOR EDX,EDX
MOV EAX,EBX
CALL 0x0004c5d0
CALL 0x00045540
MOV ESI,EAX
MOV EAX,EBX
MOV EDI,EDX
CALL 0x0004c6c0
MOV EBX,dword ptr [ESP + 0x20]
MOV EBP,dword ptr [ESP + 0xb0]
MOV ECX,dword ptr [EBX + 0x2c]
MOV EAX,dword ptr [EBX + 0x18]
TEST ECX,ECX
JZ 0x0013d65f
LEA EDX,[EAX + 0x1]
MOV EAX,EBP
CALL 0x0004c5d0
CALL 0x00045540
MOV dword ptr [ESP + 0x8c],EAX
MOV EAX,EBP
CALL 0x0004c6c0
MOV EAX,dword ptr [ESP + 0x8c]
MOV EBP,dword ptr [ESP + 0xb0]
MOV dword ptr [ESP],EAX
SAR EAX,0x1f
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,dword ptr [EBX + 0x18]
MOV ECX,ESI
MOV EBX,EDI
SHL ECX,0x3
SHLD EBX,ESI,0x3
ADD ECX,ESI
ADC EBX,EDI
ADD ECX,dword ptr [ESP]
ADC EBX,dword ptr [ESP + 0x4]
MOV ESI,ECX
MOV EDI,EBX
SHL ESI,0x3
SHLD EDI,ECX,0x3
ADD ECX,ESI
ADC EBX,EDI
MOV ESI,ECX
MOV dword ptr [ESP + 0x80],ECX
MOV EDI,EBX
MOV dword ptr [ESP + 0x84],EBX
SHLD EBX,ECX,0x3
SHL ECX,0x3
ADD ECX,ESI
ADC EBX,EDI
MOV dword ptr [ESP + 0x90],ECX
MOV dword ptr [ESP + 0x94],EBX
TEST EAX,EAX
JLE 0x0013d234
MOV EDI,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x28],0x0
MOV EDX,dword ptr [EDI + 0x20]
MOV EDI,dword ptr [ESP + 0x84]
LEA EDI,[EDI + EDI*0x8]
MOV dword ptr [ESP + 0x9c],EDI
JMP 0x0013d346
MOV dword ptr [ESP + 0x28],ECX
CMP dword ptr [ESP + 0x28],EAX
JGE 0x0013d234
MOV EDI,dword ptr [ESP + 0x28]
LEA ECX,[EDI + 0x1]
CMP byte ptr [EDX + EDI*0x1],0x0
MOV dword ptr [ESP + 0x30],ECX
JNZ 0x0013d338
MOV EAX,0x9
MUL dword ptr [ESP + 0x80]
MOV EBX,EDI
MOV ECX,EDI
SAR EBX,0x1f
ADD EDX,dword ptr [ESP + 0x9c]
ADD EAX,EDI
MOV dword ptr [ESP + 0x60],EAX
LEA EAX,[ESP + 0xb4]
ADC EDX,EBX
ADD ECX,dword ptr [ESP + 0x90]
MOV dword ptr [ESP + 0x98],EAX
LEA EAX,[ESP + 0xe4]
ADC EBX,dword ptr [ESP + 0x94]
MOV dword ptr [ESP + 0x34],EAX
LEA EAX,[ESP + 0xd4]
MOV dword ptr [ESP + 0x64],EDX
MOV dword ptr [ESP + 0x58],ECX
MOV dword ptr [ESP + 0x5c],EBX
MOV dword ptr [ESP + 0x38],EAX
MOV EDI,dword ptr [ESP + 0x30]
MOV EAX,EBP
MOV EDX,EDI
CALL 0x0004c5d0
CALL 0x0007f6d0
MOV ESI,EAX
MOV EAX,EBP
CALL 0x0004c6c0
MOV EBX,dword ptr [ESP + 0xb0]
MOV EDX,EDI
MOV EAX,EBX
CALL 0x0004c5d0
CALL 0x0007f360
MOV EDI,EAX
MOV EAX,EBX
CALL 0x0004c6c0
MOV EAX,dword ptr [ESP + 0x20]
SUB ESP,0x8
MOV ECX,ESI
MOV dword ptr [ESP + 0xbc],0x0
MOV EAX,dword ptr [EAX + 0x24]
PUSH dword ptr [ESP + 0xa0]
PUSH EDI
MOV EDX,dword ptr [ESP + 0x9c]
CALL 0x0003ed50
ADD ESP,0x10
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x0013d4d5
MOV EAX,dword ptr [ESP + 0x58]
MOV EDX,dword ptr [ESP + 0x5c]
SHLD EDX,EAX,0x3
SHL EAX,0x3
MOV dword ptr [ESP + 0x70],EAX
MOV EAX,dword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0x74],EDX
MOV EDX,dword ptr [ESP + 0x64]
SHLD EDX,EAX,0x3
SHL EAX,0x3
MOV dword ptr [ESP + 0x78],EAX
LEA EAX,[ESP + 0xb8]
MOV dword ptr [ESP + 0x3c],EAX
LEA EAX,[ESP + 0xc0]
MOV dword ptr [ESP + 0x40],EAX
LEA EAX,[ESP + 0xc8]
MOV dword ptr [ESP + 0x7c],EDX
MOV dword ptr [ESP + 0x44],EAX
MOV dword ptr [ESP + 0xc0],0x0
SUB ESP,0x8
MOV dword ptr [ESP + 0xd0],0x0
MOV dword ptr [ESP + 0xdc],0x0
MOV dword ptr [ESP + 0xec],0x0
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [ESP + 0x44]
PUSH dword ptr [ESP + 0x54]
PUSH dword ptr [ESP + 0x54]
PUSH dword ptr [ESP + 0x54]
PUSH dword ptr [ESP + 0xd0]
MOV EAX,dword ptr [ESP + 0x68]
CALL dword ptr [EAX + 0x14]
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0013d520
MOV EBX,EAX
MOV EAX,dword ptr [ESP + 0xb4]
TEST EAX,EAX
JZ 0x0013d4ee
SUB ESP,0xc
PUSH EAX
MOV EAX,dword ptr [ESP + 0x58]
CALL dword ptr [EAX + 0x10]
ADD ESP,0x10
CMP EBX,0x65
JZ 0x0013d67e
MOV EBP,dword ptr [ESP + 0xb0]
SUB ESP,0xc
PUSH EBP
CALL 0x000c0450
MOV EAX,dword ptr [ESP + 0x30]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0xf8]
MOV dword ptr [ESP + 0x4c],EBX
JMP 0x0013ba71
MOV EAX,dword ptr [ESP + 0xe4]
MOV ECX,dword ptr [ESP + 0xc0]
MOV EBX,dword ptr [ESP + 0xb8]
CDQ
MOV dword ptr [ESP + 0x8],EAX
ADD EAX,dword ptr [ESP + 0x58]
MOV dword ptr [ESP + 0xc],EDX
ADC EDX,dword ptr [ESP + 0x5c]
ADD EAX,dword ptr [ESP + 0x70]
ADC EDX,dword ptr [ESP + 0x74]
MOV dword ptr [ESP + 0x18],ECX
MOV dword ptr [ESP + 0x68],EBX
MOV EDI,EAX
MOV EBP,EDX
TEST ECX,ECX
JLE 0x0013d58f
MOV EDX,ECX
MOV ESI,EBX
ADD EDX,EBX
MOV dword ptr [ESP],EDX
LEA ESI,[ESI]
NOP
MOVSX EAX,byte ptr [ESI]
MOV ECX,EDI
MOV EBX,EBP
SHL ECX,0x3
SHLD EBX,EDI,0x3
CDQ
ADD ECX,EAX
ADC EBX,EDX
ADD EDI,ECX
ADC EBP,EBX
ADD ESI,0x1
CMP dword ptr [ESP],ESI
JNZ 0x0013d570
MOV EAX,dword ptr [ESP + 0x20]
XOR dword ptr [ESP + 0x50],EDI
XOR dword ptr [ESP + 0x54],EBP
MOV ECX,dword ptr [EAX + 0xfc]
CMP ECX,0x1
JLE 0x0013d477
MOV EBX,dword ptr [EAX + 0x100]
MOV EDX,dword ptr [ESP + 0xc]
LEA EAX,[EBX + 0x18]
MOV dword ptr [ESP],EAX
MOV EAX,dword ptr [ESP + 0x8]
ADD EAX,dword ptr [ESP + 0x60]
ADC EDX,dword ptr [ESP + 0x64]
ADD EAX,dword ptr [ESP + 0x78]
ADC EDX,dword ptr [ESP + 0x7c]
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[ECX + ECX*0x2]
LEA EAX,[EBX + EAX*0x8]
MOV dword ptr [ESP + 0x14],EDX
MOV dword ptr [ESP + 0x24],EAX
JMP 0x0013d603
ADD dword ptr [ESP],0x18
MOV EAX,dword ptr [ESP]
ADD dword ptr [ESP + 0x10],0x51
ADC dword ptr [ESP + 0x14],0x0
CMP dword ptr [ESP + 0x24],EAX
JZ 0x0013d477
MOV EAX,dword ptr [ESP]
MOV ECX,dword ptr [EAX]
CMP dword ptr [ESP + 0x18],ECX
JL 0x0013d5e8
MOV EAX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ESP + 0x14]
ADD EAX,0x51
ADC EDX,0x0
TEST ECX,ECX
JLE 0x0013d655
MOV EDI,dword ptr [ESP + 0x68]
ADD ECX,EDI
MOV EBP,EDI
MOV dword ptr [ESP + 0x8],ECX
LEA ESI,[ESI]
MOVSX ESI,byte ptr [EBP]
MOV ECX,EAX
MOV EBX,EDX
SHL ECX,0x3
SHLD EBX,EAX,0x3
MOV EDI,ESI
SAR EDI,0x1f
ADD ECX,ESI
ADC EBX,EDI
ADD EAX,ECX
ADC EDX,EBX
ADD EBP,0x1
CMP dword ptr [ESP + 0x8],EBP
JNZ 0x0013d630
XOR dword ptr [ESP + 0x50],EAX
XOR dword ptr [ESP + 0x54],EDX
JMP 0x0013d5e8
MOV dword ptr [ESP + 0x8c],0x0
MOV dword ptr [ESP],0x0
MOV dword ptr [ESP + 0x4],0x0
JMP 0x0013d2ba
MOV EAX,dword ptr [ESP + 0x20]
MOV EBP,dword ptr [ESP + 0xb0]
MOV EAX,dword ptr [EAX + 0x18]
CMP dword ptr [ESP + 0x30],EAX
JGE 0x0013d234
MOV EDI,dword ptr [ESP + 0x20]
ADD dword ptr [ESP + 0x60],0x1
ADC dword ptr [ESP + 0x64],0x0
MOV EDX,dword ptr [EDI + 0x20]
MOV EDI,dword ptr [ESP + 0x30]
ADD dword ptr [ESP + 0x58],0x1
ADC dword ptr [ESP + 0x5c],0x0
CMP byte ptr [EDX + EDI*0x1],0x0
JZ 0x0013d709
ADD dword ptr [ESP + 0x28],0x2
JMP 0x0013d33c
SUB ESP,0xc
PUSH dword ptr [ESP + 0xbc]
CALL 0x000c0450
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x50]
MOV EDX,dword ptr [ESP + 0x54]
XOR EAX,dword ptr [ESP + 0x6c]
XOR EDX,dword ptr [ESP + 0x88]
OR EDX,EAX
JZ 0x0013c0e0
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x4c],0x10b
MOV EAX,dword ptr [EAX + 0xf8]
JMP 0x0013ba71
MOV EAX,EDI
MOV dword ptr [ESP + 0x28],EDI
ADD EAX,0x1
MOV dword ptr [ESP + 0x30],EAX
JMP 0x0013d3b7
SUB ESP,0xc
PUSH dword ptr [ESP + 0xbc]
CALL 0x000c0450
ADD ESP,0x10
MOV EAX,dword ptr [EDI + 0xf8]
MOV dword ptr [ESP + 0x4c],0x7
JMP 0x0013ba71
SUB ESP,0xc
LEA EAX,[EBP + 0xfffb2eec]
MOV ESI,dword ptr [ESP + 0x2c]
PUSH dword ptr [ESI + 0x14]
PUSH dword ptr [ESI + 0x10]
PUSH EAX
PUSH dword ptr [ESI + 0xc]
LEA EAX,[ESP + 0x100]
PUSH EAX
CALL 0x00107d80
ADD ESP,0x20
CMP dword ptr [ESP + 0xe4],0x0
JNZ 0x0013bf36
MOV byte ptr [ESI + 0xe9],0x1
JMP 0x0013bf22
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [EAX + 0x30],0x0
MOV EDI,EAX
JMP 0x0013c1a5
LEA EAX,[ESP + 0xd4]
PUSH ECX
PUSH ECX
PUSH dword ptr [ESP + 0x54]
PUSH dword ptr [ESP + 0x40]
MOV ECX,dword ptr [ESP + 0x38]
MOV EDX,dword ptr [ESP + 0x30]
CALL 0x00111db0
ADD ESP,0x10
JMP 0x0013d13e
CALL 0x00153870
XOR EAX,EAX
MOV dword ptr [ESP + 0x8],ECX
JMP 0x0013bcfe
MOV ECX,0x6
LEA EDX,[EBP + 0xfffa3cf6]
MOV EAX,EBX
CALL 0x00044730
TEST EAX,EAX
JZ 0x0013be74
CMP ESI,0xa
JG 0x0013c124
JMP 0x0013ba5f
(translation_unit "int * FUN_0013b860(int param_1,int param_2,int *param_3,uint *param_4)\n\n{\n  ushort uVar1;\n  char cVar2;\n  int iVar3;\n  void *__s;\n  int iVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  int *__s_00;\n  undefined1 *puVar14;\n  char *pcVar15;\n  byte *pbVar16;\n  uint uVar17;\n  int *extraout_ECX;\n  int *extraout_ECX_00;\n  int *extraout_ECX_01;\n  int *extraout_ECX_02;\n  int *extraout_ECX_03;\n  int *extraout_ECX_04;\n  int *extraout_ECX_05;\n  int *extraout_ECX_06;\n  int iVar18;\n  byte *pbVar19;\n  int unaff_EBP;\n  uint uVar20;\n  int **ppiVar21;\n  byte *pbVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  byte bVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  uint uVar28;\n  int *__s_01;\n  int local_134;\n  int *local_12c;\n  int local_128;\n  int local_124;\n  uint local_114;\n  int local_110;\n  uint local_10c;\n  int *local_108;\n  uint local_104;\n  uint local_100;\n  int *local_f0;\n  uint local_ec;\n  uint local_e8;\n  uint local_e4;\n  int local_e0;\n  uint local_dc;\n  int local_d8;\n  uint local_d0;\n  uint local_b4;\n  int *local_98;\n  undefined4 local_94;\n  undefined4 local_8c;\n  int local_88;\n  char *local_84;\n  int local_80;\n  uint local_7c [5];\n  int *local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  int *local_58;\n  int local_54;\n  int **local_4c;\n  int local_48;\n  char *local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  bVar24 = 0;\n  FUN_0003a405();\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_94 = 0;\n  if (1 < param_2) {\n    if ((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')) {\n      iVar3 = FUN_0007f6d0();\n      iVar4 = FUN_0007f360();\n      if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }\nLAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba71;\n    }\n    piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4];\n    uVar1 = *(ushort *)(piVar6 + 2);\n    if ((uVar1 & 4) == 0) {\n      if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }\n    }\n    else {\n      iVar3 = *piVar6;\n    }\n    if (iVar3 < 0) {\n      local_98 = (int *)0x13;\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba95;\n    }\n  }\nLAB_0013b900:\n  iVar3 = FUN_00067fc0();\n  if ((iVar3 != 0) || (__s = (void *)FUN_00055780(), __s == (void *)0x0)) {\n    local_98 = (int *)0x7;\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    goto LAB_0013ba95;\n  }\n  iVar3 = *(int *)(param_1 + 0x18) + 1;\n  memset(__s,0,iVar3 * 8);\n  bVar23 = false;\n  if (*(int *)(param_1 + 0x108) == 0) {\n    local_98 = (int *)FUN_00101610();\n    piVar6 = local_58;\n    if (local_98 == (int *)0x0) {\n      iVar4 = FUN_00079820();\n      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }\n      FUN_000e7e00(local_58);\n      local_98 = (int *)FUN_000bfe40(local_58);\n      if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }\n  }\n  else {\n    local_98 = (int *)0x0;\n    if (param_2 < 2) {\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }\n    else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }\n    if (*(char *)(param_1 + 0xe8) != '\0') {\n      FUN_00111db0(__s,local_94);\n    }\n  }\nLAB_0013bb29:\n  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  }\n  else {\n    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }\n    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);\n    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n  }\n  goto LAB_0013ba95;\nLAB_0013d4fe:\n  FUN_000c0450(local_8c);\n  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  local_f0 = piVar6;\n  goto LAB_0013ba71;\nLAB_0013d234:\n  iVar4 = FUN_000e7e00(uVar5);\n  if (iVar4 == 100) {\n    FUN_0004c5d0();\n    uVar27 = FUN_00045540();\n    iVar18 = (int)((ulonglong)uVar27 >> 0x20);\n    uVar7 = (uint)uVar27;\n    FUN_0004c6c0();\n    iVar4 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x2c) == 0) {\n      uVar28 = 0;\n      iVar9 = 0;\n    }\n    else {\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }\n    uVar10 = uVar7 * 9 + uVar28;\n    iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28);\n    uVar7 = uVar10 * 9;\n    iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8);\n    uVar5 = local_8c;\n    if (0 < iVar4) {\n      local_114 = 0;\n      iVar9 = *(int *)(param_1 + 0x20);\n      do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);\n    }\n    goto LAB_0013d234;\n  }\n  FUN_000c0450(local_8c);\n  if (local_e8 == local_b4 && local_ec == local_d0) goto LAB_0013c0e0;\n  local_f0 = (int *)0x10b;\n  uVar5 = *(undefined4 *)(param_1 + 0xf8);\nLAB_0013ba71:\n  local_98 = local_f0;\nLAB_0013ba95:\n  FUN_000c0610(uVar5);\n  *(undefined4 *)(param_1 + 0xf8) = 0;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00153870();\n  }\n  return local_98;\n}\n\n" (function_definition "int * FUN_0013b860(int param_1,int param_2,int *param_3,uint *param_4)\n\n{\n  ushort uVar1;\n  char cVar2;\n  int iVar3;\n  void *__s;\n  int iVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  int *__s_00;\n  undefined1 *puVar14;\n  char *pcVar15;\n  byte *pbVar16;\n  uint uVar17;\n  int *extraout_ECX;\n  int *extraout_ECX_00;\n  int *extraout_ECX_01;\n  int *extraout_ECX_02;\n  int *extraout_ECX_03;\n  int *extraout_ECX_04;\n  int *extraout_ECX_05;\n  int *extraout_ECX_06;\n  int iVar18;\n  byte *pbVar19;\n  int unaff_EBP;\n  uint uVar20;\n  int **ppiVar21;\n  byte *pbVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  byte bVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  uint uVar28;\n  int *__s_01;\n  int local_134;\n  int *local_12c;\n  int local_128;\n  int local_124;\n  uint local_114;\n  int local_110;\n  uint local_10c;\n  int *local_108;\n  uint local_104;\n  uint local_100;\n  int *local_f0;\n  uint local_ec;\n  uint local_e8;\n  uint local_e4;\n  int local_e0;\n  uint local_dc;\n  int local_d8;\n  uint local_d0;\n  uint local_b4;\n  int *local_98;\n  undefined4 local_94;\n  undefined4 local_8c;\n  int local_88;\n  char *local_84;\n  int local_80;\n  uint local_7c [5];\n  int *local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  int *local_58;\n  int local_54;\n  int **local_4c;\n  int local_48;\n  char *local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  bVar24 = 0;\n  FUN_0003a405();\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_94 = 0;\n  if (1 < param_2) {\n    if ((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')) {\n      iVar3 = FUN_0007f6d0();\n      iVar4 = FUN_0007f360();\n      if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }\nLAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba71;\n    }\n    piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4];\n    uVar1 = *(ushort *)(piVar6 + 2);\n    if ((uVar1 & 4) == 0) {\n      if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }\n    }\n    else {\n      iVar3 = *piVar6;\n    }\n    if (iVar3 < 0) {\n      local_98 = (int *)0x13;\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba95;\n    }\n  }\nLAB_0013b900:\n  iVar3 = FUN_00067fc0();\n  if ((iVar3 != 0) || (__s = (void *)FUN_00055780(), __s == (void *)0x0)) {\n    local_98 = (int *)0x7;\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    goto LAB_0013ba95;\n  }\n  iVar3 = *(int *)(param_1 + 0x18) + 1;\n  memset(__s,0,iVar3 * 8);\n  bVar23 = false;\n  if (*(int *)(param_1 + 0x108) == 0) {\n    local_98 = (int *)FUN_00101610();\n    piVar6 = local_58;\n    if (local_98 == (int *)0x0) {\n      iVar4 = FUN_00079820();\n      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }\n      FUN_000e7e00(local_58);\n      local_98 = (int *)FUN_000bfe40(local_58);\n      if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }\n  }\n  else {\n    local_98 = (int *)0x0;\n    if (param_2 < 2) {\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }\n    else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }\n    if (*(char *)(param_1 + 0xe8) != '\0') {\n      FUN_00111db0(__s,local_94);\n    }\n  }\nLAB_0013bb29:\n  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  }\n  else {\n    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }\n    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);\n    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n  }\n  goto LAB_0013ba95;\nLAB_0013d4fe:\n  FUN_000c0450(local_8c);\n  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  local_f0 = piVar6;\n  goto LAB_0013ba71;\nLAB_0013d234:\n  iVar4 = FUN_000e7e00(uVar5);\n  if (iVar4 == 100) {\n    FUN_0004c5d0();\n    uVar27 = FUN_00045540();\n    iVar18 = (int)((ulonglong)uVar27 >> 0x20);\n    uVar7 = (uint)uVar27;\n    FUN_0004c6c0();\n    iVar4 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x2c) == 0) {\n      uVar28 = 0;\n      iVar9 = 0;\n    }\n    else {\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }\n    uVar10 = uVar7 * 9 + uVar28;\n    iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28);\n    uVar7 = uVar10 * 9;\n    iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8);\n    uVar5 = local_8c;\n    if (0 < iVar4) {\n      local_114 = 0;\n      iVar9 = *(int *)(param_1 + 0x20);\n      do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);\n    }\n    goto LAB_0013d234;\n  }\n  FUN_000c0450(local_8c);\n  if (local_e8 == local_b4 && local_ec == local_d0) goto LAB_0013c0e0;\n  local_f0 = (int *)0x10b;\n  uVar5 = *(undefined4 *)(param_1 + 0xf8);\nLAB_0013ba71:\n  local_98 = local_f0;\nLAB_0013ba95:\n  FUN_000c0610(uVar5);\n  *(undefined4 *)(param_1 + 0xf8) = 0;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00153870();\n  }\n  return local_98;\n}" primitive_type (pointer_declarator "* FUN_0013b860(int param_1,int param_2,int *param_3,uint *param_4)" * (function_declarator "FUN_0013b860(int param_1,int param_2,int *param_3,uint *param_4)" identifier (parameter_list "(int param_1,int param_2,int *param_3,uint *param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) )))) (compound_statement "{\n  ushort uVar1;\n  char cVar2;\n  int iVar3;\n  void *__s;\n  int iVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  int *__s_00;\n  undefined1 *puVar14;\n  char *pcVar15;\n  byte *pbVar16;\n  uint uVar17;\n  int *extraout_ECX;\n  int *extraout_ECX_00;\n  int *extraout_ECX_01;\n  int *extraout_ECX_02;\n  int *extraout_ECX_03;\n  int *extraout_ECX_04;\n  int *extraout_ECX_05;\n  int *extraout_ECX_06;\n  int iVar18;\n  byte *pbVar19;\n  int unaff_EBP;\n  uint uVar20;\n  int **ppiVar21;\n  byte *pbVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  byte bVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  uint uVar28;\n  int *__s_01;\n  int local_134;\n  int *local_12c;\n  int local_128;\n  int local_124;\n  uint local_114;\n  int local_110;\n  uint local_10c;\n  int *local_108;\n  uint local_104;\n  uint local_100;\n  int *local_f0;\n  uint local_ec;\n  uint local_e8;\n  uint local_e4;\n  int local_e0;\n  uint local_dc;\n  int local_d8;\n  uint local_d0;\n  uint local_b4;\n  int *local_98;\n  undefined4 local_94;\n  undefined4 local_8c;\n  int local_88;\n  char *local_84;\n  int local_80;\n  uint local_7c [5];\n  int *local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  int *local_58;\n  int local_54;\n  int **local_4c;\n  int local_48;\n  char *local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  bVar24 = 0;\n  FUN_0003a405();\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_94 = 0;\n  if (1 < param_2) {\n    if ((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')) {\n      iVar3 = FUN_0007f6d0();\n      iVar4 = FUN_0007f360();\n      if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }\nLAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba71;\n    }\n    piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4];\n    uVar1 = *(ushort *)(piVar6 + 2);\n    if ((uVar1 & 4) == 0) {\n      if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }\n    }\n    else {\n      iVar3 = *piVar6;\n    }\n    if (iVar3 < 0) {\n      local_98 = (int *)0x13;\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba95;\n    }\n  }\nLAB_0013b900:\n  iVar3 = FUN_00067fc0();\n  if ((iVar3 != 0) || (__s = (void *)FUN_00055780(), __s == (void *)0x0)) {\n    local_98 = (int *)0x7;\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    goto LAB_0013ba95;\n  }\n  iVar3 = *(int *)(param_1 + 0x18) + 1;\n  memset(__s,0,iVar3 * 8);\n  bVar23 = false;\n  if (*(int *)(param_1 + 0x108) == 0) {\n    local_98 = (int *)FUN_00101610();\n    piVar6 = local_58;\n    if (local_98 == (int *)0x0) {\n      iVar4 = FUN_00079820();\n      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }\n      FUN_000e7e00(local_58);\n      local_98 = (int *)FUN_000bfe40(local_58);\n      if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }\n  }\n  else {\n    local_98 = (int *)0x0;\n    if (param_2 < 2) {\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }\n    else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }\n    if (*(char *)(param_1 + 0xe8) != '\0') {\n      FUN_00111db0(__s,local_94);\n    }\n  }\nLAB_0013bb29:\n  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  }\n  else {\n    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }\n    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);\n    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n  }\n  goto LAB_0013ba95;\nLAB_0013d4fe:\n  FUN_000c0450(local_8c);\n  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  local_f0 = piVar6;\n  goto LAB_0013ba71;\nLAB_0013d234:\n  iVar4 = FUN_000e7e00(uVar5);\n  if (iVar4 == 100) {\n    FUN_0004c5d0();\n    uVar27 = FUN_00045540();\n    iVar18 = (int)((ulonglong)uVar27 >> 0x20);\n    uVar7 = (uint)uVar27;\n    FUN_0004c6c0();\n    iVar4 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x2c) == 0) {\n      uVar28 = 0;\n      iVar9 = 0;\n    }\n    else {\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }\n    uVar10 = uVar7 * 9 + uVar28;\n    iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28);\n    uVar7 = uVar10 * 9;\n    iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8);\n    uVar5 = local_8c;\n    if (0 < iVar4) {\n      local_114 = 0;\n      iVar9 = *(int *)(param_1 + 0x20);\n      do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);\n    }\n    goto LAB_0013d234;\n  }\n  FUN_000c0450(local_8c);\n  if (local_e8 == local_b4 && local_ec == local_d0) goto LAB_0013c0e0;\n  local_f0 = (int *)0x10b;\n  uVar5 = *(undefined4 *)(param_1 + 0xf8);\nLAB_0013ba71:\n  local_98 = local_f0;\nLAB_0013ba95:\n  FUN_000c0610(uVar5);\n  *(undefined4 *)(param_1 + 0xf8) = 0;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00153870();\n  }\n  return local_98;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "void *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int *__s_00;" primitive_type (pointer_declarator "*__s_00" * identifier) ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int *extraout_ECX;" primitive_type (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "int *extraout_ECX_00;" primitive_type (pointer_declarator "*extraout_ECX_00" * identifier) ;) (declaration "int *extraout_ECX_01;" primitive_type (pointer_declarator "*extraout_ECX_01" * identifier) ;) (declaration "int *extraout_ECX_02;" primitive_type (pointer_declarator "*extraout_ECX_02" * identifier) ;) (declaration "int *extraout_ECX_03;" primitive_type (pointer_declarator "*extraout_ECX_03" * identifier) ;) (declaration "int *extraout_ECX_04;" primitive_type (pointer_declarator "*extraout_ECX_04" * identifier) ;) (declaration "int *extraout_ECX_05;" primitive_type (pointer_declarator "*extraout_ECX_05" * identifier) ;) (declaration "int *extraout_ECX_06;" primitive_type (pointer_declarator "*extraout_ECX_06" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "int **ppiVar21;" primitive_type (pointer_declarator "**ppiVar21" * (pointer_declarator "*ppiVar21" * identifier)) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "byte bVar24;" type_identifier identifier ;) (declaration "longlong lVar25;" type_identifier identifier ;) (declaration "longlong lVar26;" type_identifier identifier ;) (declaration "undefined8 uVar27;" type_identifier identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "int *__s_01;" primitive_type (pointer_declarator "*__s_01" * identifier) ;) (declaration "int local_134;" primitive_type identifier ;) (declaration "int *local_12c;" primitive_type (pointer_declarator "*local_12c" * identifier) ;) (declaration "int local_128;" primitive_type identifier ;) (declaration "int local_124;" primitive_type identifier ;) (declaration "uint local_114;" type_identifier identifier ;) (declaration "int local_110;" primitive_type identifier ;) (declaration "uint local_10c;" type_identifier identifier ;) (declaration "int *local_108;" primitive_type (pointer_declarator "*local_108" * identifier) ;) (declaration "uint local_104;" type_identifier identifier ;) (declaration "uint local_100;" type_identifier identifier ;) (declaration "int *local_f0;" primitive_type (pointer_declarator "*local_f0" * identifier) ;) (declaration "uint local_ec;" type_identifier identifier ;) (declaration "uint local_e8;" type_identifier identifier ;) (declaration "uint local_e4;" type_identifier identifier ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "uint local_dc;" type_identifier identifier ;) (declaration "int local_d8;" primitive_type identifier ;) (declaration "uint local_d0;" type_identifier identifier ;) (declaration "uint local_b4;" type_identifier identifier ;) (declaration "int *local_98;" primitive_type (pointer_declarator "*local_98" * identifier) ;) (declaration "undefined4 local_94;" type_identifier identifier ;) (declaration "undefined4 local_8c;" type_identifier identifier ;) (declaration "int local_88;" primitive_type identifier ;) (declaration "char *local_84;" primitive_type (pointer_declarator "*local_84" * identifier) ;) (declaration "int local_80;" primitive_type identifier ;) (declaration "uint local_7c [5];" type_identifier (array_declarator "local_7c [5]" identifier [ number_literal ]) ;) (declaration "int *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "int *local_58;" primitive_type (pointer_declarator "*local_58" * identifier) ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "int **local_4c;" primitive_type (pointer_declarator "**local_4c" * (pointer_declarator "*local_4c" * identifier)) ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "char *local_30;" primitive_type (pointer_declarator "*local_30" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "bVar24 = 0;" (assignment_expression "bVar24 = 0" identifier = number_literal) ;) (expression_statement "FUN_0003a405();" (call_expression "FUN_0003a405()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (if_statement "if (1 < param_2) {\n    if ((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')) {\n      iVar3 = FUN_0007f6d0();\n      iVar4 = FUN_0007f360();\n      if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }\nLAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba71;\n    }\n    piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4];\n    uVar1 = *(ushort *)(piVar6 + 2);\n    if ((uVar1 & 4) == 0) {\n      if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }\n    }\n    else {\n      iVar3 = *piVar6;\n    }\n    if (iVar3 < 0) {\n      local_98 = (int *)0x13;\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba95;\n    }\n  }" if (parenthesized_expression "(1 < param_2)" ( (binary_expression "1 < param_2" number_literal < identifier) )) (compound_statement "{\n    if ((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')) {\n      iVar3 = FUN_0007f6d0();\n      iVar4 = FUN_0007f360();\n      if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }\nLAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba71;\n    }\n    piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4];\n    uVar1 = *(ushort *)(piVar6 + 2);\n    if ((uVar1 & 4) == 0) {\n      if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }\n    }\n    else {\n      iVar3 = *piVar6;\n    }\n    if (iVar3 < 0) {\n      local_98 = (int *)0x13;\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba95;\n    }\n  }" { (if_statement "if ((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')) {\n      iVar3 = FUN_0007f6d0();\n      iVar4 = FUN_0007f360();\n      if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }\nLAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba71;\n    }" if (parenthesized_expression "((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05'))" ( (binary_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')" (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05')" ( (binary_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" * (cast_expression "(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" ( (binary_expression "unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" identifier + number_literal) + (parenthesized_expression "(*(ushort *)(*param_3 + 8) & 0x1f)" ( (binary_expression "*(ushort *)(*param_3 + 8) & 0x1f" (pointer_expression "*(ushort *)(*param_3 + 8)" * (cast_expression "(ushort *)(*param_3 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_3 + 8)" ( (binary_expression "*param_3 + 8" (pointer_expression "*param_3" * identifier) + number_literal) )))) & number_literal) ))) )))) == (char_literal "'\x05'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')" ( (binary_expression "*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f))" * (cast_expression "(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f))" ( (binary_expression "unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" identifier + number_literal) + (parenthesized_expression "(*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)" ( (binary_expression "*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f" (pointer_expression "*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8)" * (cast_expression "(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3[*(int *)(param_1 + 0x18) + 2] + 8)" ( (binary_expression "param_3[*(int *)(param_1 + 0x18) + 2] + 8" (subscript_expression "param_3[*(int *)(param_1 + 0x18) + 2]" identifier [ (binary_expression "*(int *)(param_1 + 0x18) + 2" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) + number_literal) ]) + number_literal) )))) & number_literal) ))) )))) != (char_literal "'\x05'" ' escape_sequence ')) ))) )) (compound_statement "{\n      iVar3 = FUN_0007f6d0();\n      iVar4 = FUN_0007f360();\n      if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }\nLAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba71;\n    }" { (expression_statement "iVar3 = FUN_0007f6d0();" (assignment_expression "iVar3 = FUN_0007f6d0()" identifier = (call_expression "FUN_0007f6d0()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar4 = FUN_0007f360();" (assignment_expression "iVar4 = FUN_0007f360()" identifier = (call_expression "FUN_0007f360()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }" { (expression_statement "local_f0 = (int *)0x7;" (assignment_expression "local_f0 = (int *)0x7" identifier = (cast_expression "(int *)0x7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) })) (if_statement "if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }" if (parenthesized_expression "(iVar4 == 8)" ( (binary_expression "iVar4 == 8" identifier == number_literal) )) (compound_statement "{\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }" { (expression_statement "iVar4 = FUN_00044730();" (assignment_expression "iVar4 = FUN_00044730()" identifier = (call_expression "FUN_00044730()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }" { (expression_statement "local_f0 = (int *)FUN_00139450();" (assignment_expression "local_f0 = (int *)FUN_00139450()" identifier = (cast_expression "(int *)FUN_00139450()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00139450()" identifier (argument_list "()" ( ))))) ;) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) })) (labeled_statement "LAB_0013be5a:\n        iVar4 = FUN_00044730();" statement_identifier : (expression_statement "iVar4 = FUN_00044730();" (assignment_expression "iVar4 = FUN_00044730()" identifier = (call_expression "FUN_00044730()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }" { (labeled_statement "LAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);" statement_identifier : (expression_statement "cVar2 = *(char *)(iVar3 + 6);" (assignment_expression "cVar2 = *(char *)(iVar3 + 6)" identifier = (pointer_expression "*(char *)(iVar3 + 6)" * (cast_expression "(char *)(iVar3 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 6)" ( (binary_expression "iVar3 + 6" identifier + number_literal) ))))) ;)) (expression_statement "pcVar15 = (char *)(iVar3 + 6);" (assignment_expression "pcVar15 = (char *)(iVar3 + 6)" identifier = (cast_expression "(char *)(iVar3 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 6)" ( (binary_expression "iVar3 + 6" identifier + number_literal) )))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }" if (parenthesized_expression "((byte)(cVar2 - 0x30U) < 10)" ( (binary_expression "(byte)(cVar2 - 0x30U) < 10" (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 - 0x30U)" ( (binary_expression "cVar2 - 0x30U" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }" { (do_statement "do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);" do (compound_statement "{\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            }" { (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = cVar2 + -0x30 + iVar3 * 10;" (assignment_expression "iVar3 = cVar2 + -0x30 + iVar3 * 10" identifier = (binary_expression "cVar2 + -0x30 + iVar3 * 10" (binary_expression "cVar2 + -0x30" identifier + number_literal) + (binary_expression "iVar3 * 10" identifier * number_literal))) ;) (expression_statement "cVar2 = *pcVar15;" (assignment_expression "cVar2 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (if_statement "if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;" if (parenthesized_expression "(9 < (byte)(cVar2 - 0x30U))" ( (binary_expression "9 < (byte)(cVar2 - 0x30U)" number_literal < (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 - 0x30U)" ( (binary_expression "cVar2 - 0x30U" identifier - number_literal) )))) )) (goto_statement "goto LAB_0013beb1;" goto statement_identifier ;)) }) while (parenthesized_expression "(iVar3 < 0xccccccb)" ( (binary_expression "iVar3 < 0xccccccb" identifier < number_literal) )) ;) }) (else_clause "else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }" else (compound_statement "{\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }" { (labeled_statement "LAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }" statement_identifier : (if_statement "if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }" if (parenthesized_expression "(cVar2 == ',')" ( (binary_expression "cVar2 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }" { (expression_statement "cVar2 = pcVar15[1];" (assignment_expression "cVar2 = pcVar15[1]" identifier = (subscript_expression "pcVar15[1]" identifier [ number_literal ])) ;) (if_statement "if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }" if (parenthesized_expression "((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10))" ( (binary_expression "(cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)" (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)" ( (comma_expression "pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) , (binary_expression "(byte)(cVar2 - 0x30U) < 10" (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 - 0x30U)" ( (binary_expression "cVar2 - 0x30U" identifier - number_literal) ))) < number_literal)) ))) )) (compound_statement "{\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);" do (compound_statement "{\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                }" { (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = cVar2 + -0x30 + iVar3 * 10;" (assignment_expression "iVar3 = cVar2 + -0x30 + iVar3 * 10" identifier = (binary_expression "cVar2 + -0x30 + iVar3 * 10" (binary_expression "cVar2 + -0x30" identifier + number_literal) + (binary_expression "iVar3 * 10" identifier * number_literal))) ;) (expression_statement "cVar2 = *pcVar15;" (assignment_expression "cVar2 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (if_statement "if (9 < (byte)(cVar2 - 0x30U)) break;" if (parenthesized_expression "(9 < (byte)(cVar2 - 0x30U))" ( (binary_expression "9 < (byte)(cVar2 - 0x30U)" number_literal < (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 - 0x30U)" ( (binary_expression "cVar2 - 0x30U" identifier - number_literal) )))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(iVar3 < 0xccccccb)" ( (binary_expression "iVar3 < 0xccccccb" identifier < number_literal) )) ;) (if_statement "if (1 < iVar3) goto joined_r0x0013cd82;" if (parenthesized_expression "(1 < iVar3)" ( (binary_expression "1 < iVar3" number_literal < identifier) )) (goto_statement "goto joined_r0x0013cd82;" goto statement_identifier ;)) })) }) (else_clause "else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }" else (compound_statement "{\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }" { (labeled_statement "joined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }" statement_identifier : (if_statement "if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }" { (expression_statement "local_58 = (int *)0x0;" (assignment_expression "local_58 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }" if (parenthesized_expression "(*(char *)(param_1 + 0xe9) == '\0')" ( (binary_expression "*(char *)(param_1 + 0xe9) == '\0'" (pointer_expression "*(char *)(param_1 + 0xe9)" * (cast_expression "(char *)(param_1 + 0xe9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe9)" ( (binary_expression "param_1 + 0xe9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }" { (expression_statement "FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));" (call_expression "FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14))" identifier (argument_list "(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14))" ( (pointer_expression "&local_58" & identifier) , (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , (binary_expression "unaff_EBP + 0x324ae" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) ))) ;) (if_statement "if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }" if (parenthesized_expression "(local_58 == (int *)0x0)" ( (binary_expression "local_58 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }" { (expression_statement "*(undefined1 *)(param_1 + 0xe9) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xe9) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xe9)" * (cast_expression "(undefined1 *)(param_1 + 0xe9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe9)" ( (binary_expression "param_1 + 0xe9" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0013bf22;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }" else (compound_statement "{\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }" { (labeled_statement "LAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();" statement_identifier : (expression_statement "local_58 = (int *)FUN_0012d940();" (assignment_expression "local_58 = (int *)FUN_0012d940()" identifier = (cast_expression "(int *)FUN_0012d940()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012d940()" identifier (argument_list "()" ( ))))) ;)) }))) (expression_statement "FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));" (call_expression "FUN_000c0610(*(undefined4 *)(param_1 + 0xf8))" identifier (argument_list "(*(undefined4 *)(param_1 + 0xf8))" ( (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0xf8) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xf8) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_f0 = local_58;" (assignment_expression "local_f0 = local_58" identifier = identifier) ;) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) }))) })))) }))) })) (labeled_statement "LAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;" statement_identifier : (expression_statement "local_f0 = (int *)&DAT_00000001;" (assignment_expression "local_f0 = (int *)&DAT_00000001" identifier = (cast_expression "(int *)&DAT_00000001" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;)) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) })) (if_statement "if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }" if (parenthesized_expression "(iVar4 == 7)" ( (binary_expression "iVar4 == 7" identifier == number_literal) )) (compound_statement "{\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }" { (expression_statement "iVar4 = FUN_00044730();" (assignment_expression "iVar4 = FUN_00044730()" identifier = (call_expression "FUN_00044730()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 0) goto LAB_0013be5a;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0013be5a;" goto statement_identifier ;)) (expression_statement "local_f0 = (int *)FUN_0010da50();" (assignment_expression "local_f0 = (int *)FUN_0010da50()" identifier = (cast_expression "(int *)FUN_0010da50()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010da50()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_68 = local_f0;" (assignment_expression "local_68 = local_f0" identifier = identifier) ;) (if_statement "if (local_f0 != (int *)0x0) goto LAB_0013c0e0;" if (parenthesized_expression "(local_f0 != (int *)0x0)" ( (binary_expression "local_f0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013c0e0;" goto statement_identifier ;)) (expression_statement "local_58 = (int *)0x0;" (assignment_expression "local_58 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));" (assignment_expression "iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc))" identifier = (call_expression "FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc))" identifier (argument_list "(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc))" ( (binary_expression "unaff_EBP + 0x230e7" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0xdc)" * (cast_expression "(undefined4 *)(param_1 + 0xdc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xdc)" ( (binary_expression "param_1 + 0xdc" identifier + number_literal) )))) )))) ;) (expression_statement "piVar6 = extraout_ECX;" (assignment_expression "piVar6 = extraout_ECX" identifier = identifier) ;) (if_statement "if (iVar3 == 0) goto LAB_0013d10b;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013d10b;" goto statement_identifier ;)) (expression_statement "local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);" (assignment_expression "local_68 = (int *)FUN_00100700(0x80,0,&local_58,0)" identifier = (cast_expression "(int *)FUN_00100700(0x80,0,&local_58,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00100700(0x80,0,&local_58,0)" identifier (argument_list "(0x80,0,&local_58,0)" ( number_literal , number_literal , (pointer_expression "&local_58" & identifier) , number_literal ))))) ;) (expression_statement "FUN_00044000(iVar3);" (call_expression "FUN_00044000(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "piVar6 = local_68;" (assignment_expression "piVar6 = local_68" identifier = identifier) ;) (if_statement "if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }" if (parenthesized_expression "(local_68 == (int *)0x0)" ( (binary_expression "local_68 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }" { (expression_statement "iVar3 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = FUN_00067fc0();" (assignment_expression "iVar4 = FUN_00067fc0()" identifier = (call_expression "FUN_00067fc0()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar6 = extraout_ECX_00;" (assignment_expression "piVar6 = extraout_ECX_00" identifier = identifier) ;) (if_statement "if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }" { (labeled_statement "LAB_0013d10b:\n            local_68 = (int *)0x7;" statement_identifier : (expression_statement "local_68 = (int *)0x7;" (assignment_expression "local_68 = (int *)0x7" identifier = (cast_expression "(int *)0x7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_0013d116;" goto statement_identifier ;) })) (expression_statement "__s_00 = (int *)FUN_00055780();" (assignment_expression "__s_00 = (int *)FUN_00055780()" identifier = (cast_expression "(int *)FUN_00055780()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00055780()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar6 = extraout_ECX_01;" (assignment_expression "piVar6 = extraout_ECX_01" identifier = identifier) ;) (if_statement "if (__s_00 == (int *)0x0) goto LAB_0013d10b;" if (parenthesized_expression "(__s_00 == (int *)0x0)" ( (binary_expression "__s_00 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013d10b;" goto statement_identifier ;)) (expression_statement "__s_01 = __s_00;" (assignment_expression "__s_01 = __s_00" identifier = identifier) ;) (expression_statement "memset(__s_00,0,(iVar3 + 1) * 0xc);" (call_expression "memset(__s_00,0,(iVar3 + 1) * 0xc)" identifier (argument_list "(__s_00,0,(iVar3 + 1) * 0xc)" ( identifier , number_literal , (binary_expression "(iVar3 + 1) * 0xc" (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )) * number_literal) ))) ;) (expression_statement "iVar3 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "local_108 = __s_00 + iVar3 * 2 + 2;" (assignment_expression "local_108 = __s_00 + iVar3 * 2 + 2" identifier = (binary_expression "__s_00 + iVar3 * 2 + 2" (binary_expression "__s_00 + iVar3 * 2" identifier + (binary_expression "iVar3 * 2" identifier * number_literal)) + number_literal)) ;) (expression_statement "local_f0 = (int *)0x0;" (assignment_expression "local_f0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar6 = extraout_ECX_02;" (assignment_expression "piVar6 = extraout_ECX_02" identifier = identifier) ;) (while_statement "while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }" while (parenthesized_expression "((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100)))" ( (parenthesized_expression "(local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))" ( (binary_expression "local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100)" (binary_expression "local_68 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100)" ( (comma_expression "iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100" (assignment_expression "iVar4 = FUN_000e7e00(local_58)" identifier = (call_expression "FUN_000e7e00(local_58)" identifier (argument_list "(local_58)" ( identifier )))) , (comma_expression "piVar6 = extraout_ECX_03, iVar4 == 100" (assignment_expression "piVar6 = extraout_ECX_03" identifier = identifier) , (binary_expression "iVar4 == 100" identifier == number_literal))) ))) )) )) (compound_statement "{\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }" { (expression_statement "local_134 = 0;" (assignment_expression "local_134 = 0" identifier = number_literal) ;) (if_statement "if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }" if (parenthesized_expression "(*(int *)(param_1 + 0x2c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x2c) != 0" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }" { (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_134 = FUN_00045540();" (assignment_expression "local_134 = FUN_00045540()" identifier = (call_expression "FUN_00045540()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "lVar25 = FUN_0005b180();" (assignment_expression "lVar25 = FUN_0005b180()" identifier = (call_expression "FUN_0005b180()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar18 = (int)((ulonglong)lVar25 >> 0x20);" (assignment_expression "iVar18 = (int)((ulonglong)lVar25 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar25 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar25 >> 0x20)" ( (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));" (assignment_expression "uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c))" identifier = (call_expression "(uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)lVar25 < *(uint *)(param_1 + 0x10c))" ( (binary_expression "(uint)lVar25 < *(uint *)(param_1 + 0x10c)" (cast_expression "(uint)lVar25" ( (type_descriptor "uint" type_identifier) ) identifier) < (pointer_expression "*(uint *)(param_1 + 0x10c)" * (cast_expression "(uint *)(param_1 + 0x10c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar4 = iVar18 - *(int *)(param_1 + 0x110);" (assignment_expression "iVar4 = iVar18 - *(int *)(param_1 + 0x110)" identifier = (binary_expression "iVar18 - *(int *)(param_1 + 0x110)" identifier - (pointer_expression "*(int *)(param_1 + 0x110)" * (cast_expression "(int *)(param_1 + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))))) ;) (if_statement "if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }" if (parenthesized_expression "(((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0))" ( (binary_expression "((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)" (parenthesized_expression "((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104)))" ( (binary_expression "(((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))" (parenthesized_expression "(((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114)))))" ( (binary_expression "((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))" (parenthesized_expression "((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0)" ( (binary_expression "(SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0" (parenthesized_expression "(SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7))" ( (binary_expression "SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)" (call_expression "SBORROW4(iVar18,*(int *)(param_1 + 0x110))" identifier (argument_list "(iVar18,*(int *)(param_1 + 0x110))" ( identifier , (pointer_expression "*(int *)(param_1 + 0x110)" * (cast_expression "(int *)(param_1 + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) ))) != (call_expression "SBORROW4(iVar4,uVar7)" identifier (argument_list "(iVar4,uVar7)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar4 - uVar7) < 0" (cast_expression "(int)(iVar4 - uVar7)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar4 - uVar7)" ( (binary_expression "iVar4 - uVar7" identifier - identifier) ))) < number_literal)) )) && (parenthesized_expression "(((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))" ( (parenthesized_expression "((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114)))" ( (binary_expression "(lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))" (parenthesized_expression "(lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0))" ( (binary_expression "lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)" (binary_expression "lVar25 != *(longlong *)(param_1 + 0x10c)" identifier != (pointer_expression "*(longlong *)(param_1 + 0x10c)" * (cast_expression "(longlong *)(param_1 + 0x10c)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) ))))) || (parenthesized_expression "(*(int *)(param_1 + 0x118) != 0)" ( (binary_expression "*(int *)(param_1 + 0x118) != 0" (pointer_expression "*(int *)(param_1 + 0x118)" * (cast_expression "(int *)(param_1 + 0x118)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(local_134 == *(int *)(param_1 + 0x114))" ( (binary_expression "local_134 == *(int *)(param_1 + 0x114)" identifier == (pointer_expression "*(int *)(param_1 + 0x114)" * (cast_expression "(int *)(param_1 + 0x114)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x114)" ( (binary_expression "param_1 + 0x114" identifier + number_literal) ))))) ))) )) ))) )) && (parenthesized_expression "(*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))" ( (binary_expression "*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104)" (pointer_expression "*(int *)(param_1 + 0x108)" * (cast_expression "(int *)(param_1 + 0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) <= (pointer_expression "*(int *)(param_1 + 0x104)" * (cast_expression "(int *)(param_1 + 0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x104)" ( (binary_expression "param_1 + 0x104" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "(local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)" ( (comma_expression "local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0" (assignment_expression "local_68 = (int *)FUN_0013aff0()" identifier = (cast_expression "(int *)FUN_0013aff0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013aff0()" identifier (argument_list "()" ( ))))) , (binary_expression "local_68 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }" { (expression_statement "*(longlong *)(param_1 + 0x10c) = lVar25;" (assignment_expression "*(longlong *)(param_1 + 0x10c) = lVar25" (pointer_expression "*(longlong *)(param_1 + 0x10c)" * (cast_expression "(longlong *)(param_1 + 0x10c)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x118) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x118) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x118)" * (cast_expression "(undefined4 *)(param_1 + 0x118)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x114) = local_134;" (assignment_expression "*(int *)(param_1 + 0x114) = local_134" (pointer_expression "*(int *)(param_1 + 0x114)" * (cast_expression "(int *)(param_1 + 0x114)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x114)" ( (binary_expression "param_1 + 0x114" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_68 = (int *)0x0;" (assignment_expression "local_68 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);" (call_expression "memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4)" identifier (argument_list "(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4)" ( identifier , number_literal , (binary_expression "*(int *)(param_1 + 0x18) * 4 + 4" (binary_expression "*(int *)(param_1 + 0x18) * 4" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) * number_literal) + number_literal) ))) ;) (expression_statement "piVar6 = __s_01;" (assignment_expression "piVar6 = __s_01" identifier = identifier) ;) (if_statement "if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }" if (parenthesized_expression "(local_68 == (int *)0x0)" ( (binary_expression "local_68 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }" { (expression_statement "iVar4 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "piVar6 = extraout_ECX_04;" (assignment_expression "piVar6 = extraout_ECX_04" identifier = identifier) ;) (if_statement "if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);" do (compound_statement "{\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                }" { (expression_statement "iVar9 = iVar18 + 1;" (assignment_expression "iVar9 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (if_statement "if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }" if (parenthesized_expression "(*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0')" ( (binary_expression "*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 0x20) + iVar18)" * (cast_expression "(char *)(*(int *)(param_1 + 0x20) + iVar18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x20) + iVar18)" ( (binary_expression "*(int *)(param_1 + 0x20) + iVar18" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }" { (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0007f6d0();" (call_expression "FUN_0007f6d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);" (assignment_expression "local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18)" identifier = (cast_expression "(int *)FUN_001223f0(iVar18,__s_01 + iVar18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001223f0(iVar18,__s_01 + iVar18)" identifier (argument_list "(iVar18,__s_01 + iVar18)" ( identifier , (binary_expression "__s_01 + iVar18" identifier + identifier) ))))) ;) (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar4 = FUN_0007f360();" (assignment_expression "iVar4 = FUN_0007f360()" identifier = (call_expression "FUN_0007f360()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar6 = __s_01;" (assignment_expression "piVar6 = __s_01" identifier = identifier) ;) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;" (assignment_expression "piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4" (subscript_expression "piVar6[*(int *)(param_1 + 0x18)]" identifier [ (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) ]) = (binary_expression "piVar6[*(int *)(param_1 + 0x18)] + iVar4" (subscript_expression "piVar6[*(int *)(param_1 + 0x18)]" identifier [ (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) ]) + identifier)) ;) (if_statement "if (local_68 != (int *)0x0) goto LAB_0013d062;" if (parenthesized_expression "(local_68 != (int *)0x0)" ( (binary_expression "local_68 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013d062;" goto statement_identifier ;)) (expression_statement "iVar4 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "__s_01 = piVar6;" (assignment_expression "__s_01 = piVar6" identifier = identifier) ;) })) (expression_statement "iVar18 = iVar9;" (assignment_expression "iVar18 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(iVar9 < iVar4)" ( (binary_expression "iVar9 < iVar4" identifier < identifier) )) ;) })) (if_statement "if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;" if (parenthesized_expression "(*(char *)(param_1 + 0xea) != '\0')" ( (binary_expression "*(char *)(param_1 + 0xea) != '\0'" (pointer_expression "*(char *)(param_1 + 0xea)" * (cast_expression "(char *)(param_1 + 0xea)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xea)" ( (binary_expression "param_1 + 0xea" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0013d0c3;" goto statement_identifier ;)) (labeled_statement "LAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);" statement_identifier : (expression_statement "local_f0 = (int *)((int)local_f0 + 1);" (assignment_expression "local_f0 = (int *)((int)local_f0 + 1)" identifier = (cast_expression "(int *)((int)local_f0 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_f0 + 1)" ( (binary_expression "(int)local_f0 + 1" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (if_statement "if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }" if (parenthesized_expression "(-1 < iVar4)" ( (binary_expression "-1 < iVar4" number_literal < identifier) )) (compound_statement "{\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));" do (compound_statement "{\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                }" { (expression_statement "__s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];" (assignment_expression "__s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4]" (subscript_expression "__s_00[iVar3 + iVar4 + 1]" identifier [ (binary_expression "iVar3 + iVar4 + 1" (binary_expression "iVar3 + iVar4" identifier + identifier) + number_literal) ]) = (binary_expression "__s_00[iVar3 + iVar4 + 1] + __s_01[iVar4]" (subscript_expression "__s_00[iVar3 + iVar4 + 1]" identifier [ (binary_expression "iVar3 + iVar4 + 1" (binary_expression "iVar3 + iVar4" identifier + identifier) + number_literal) ]) + (subscript_expression "__s_01[iVar4]" identifier [ identifier ]))) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "piVar6 = __s_01;" (assignment_expression "piVar6 = __s_01" identifier = identifier) ;) }) while (parenthesized_expression "(iVar4 <= *(int *)(param_1 + 0x18))" ( (binary_expression "iVar4 <= *(int *)(param_1 + 0x18)" identifier <= (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) ;) })) }) (else_clause "else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }" else (compound_statement "{\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }" { (labeled_statement "LAB_0013d062:\n              __s_01 = piVar6;" statement_identifier : (expression_statement "__s_01 = piVar6;" (assignment_expression "__s_01 = piVar6" identifier = identifier) ;)) (if_statement "if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }" if (parenthesized_expression "(*(char *)(param_1 + 0xea) != '\0')" ( (binary_expression "*(char *)(param_1 + 0xea) != '\0'" (pointer_expression "*(char *)(param_1 + 0xea)" * (cast_expression "(char *)(param_1 + 0xea)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xea)" ( (binary_expression "param_1 + 0xea" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }" { (labeled_statement "LAB_0013d0c3:\n                FUN_00111bd0();" statement_identifier : (expression_statement "FUN_00111bd0();" (call_expression "FUN_00111bd0()" identifier (argument_list "()" ( ))) ;)) (if_statement "if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }" if (parenthesized_expression "(local_68 == (int *)0x0)" ( (binary_expression "local_68 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }" { (expression_statement "iVar4 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "piVar6 = extraout_ECX_06;" (assignment_expression "piVar6 = extraout_ECX_06" identifier = identifier) ;) (goto_statement "goto LAB_0013d09a;" goto statement_identifier ;) })) })) (expression_statement "FUN_000c0450(local_58);" (call_expression "FUN_000c0450(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "local_58 = (int *)0x0;" (assignment_expression "local_58 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar6 = extraout_ECX_05;" (assignment_expression "piVar6 = extraout_ECX_05" identifier = identifier) ;) }))) })) }) (else_clause "else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }" else (compound_statement "{\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }" { (labeled_statement "LAB_0013d116:\n          local_108 = (int *)0x0;" statement_identifier : (expression_statement "local_108 = (int *)0x0;" (assignment_expression "local_108 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "__s_01 = (int *)0x0;" (assignment_expression "__s_01 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = (int *)0x0;" (assignment_expression "local_f0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (if_statement "if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }" if (parenthesized_expression "(*(char *)(param_1 + 0xe8) != '\0')" ( (binary_expression "*(char *)(param_1 + 0xe8) != '\0'" (pointer_expression "*(char *)(param_1 + 0xe8)" * (cast_expression "(char *)(param_1 + 0xe8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe8)" ( (binary_expression "param_1 + 0xe8" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }" { (expression_statement "FUN_00111db0(local_108,local_f0,piVar6,piVar6);" (call_expression "FUN_00111db0(local_108,local_f0,piVar6,piVar6)" identifier (argument_list "(local_108,local_f0,piVar6,piVar6)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "FUN_00044000(__s_01);" (call_expression "FUN_00044000(__s_01)" identifier (argument_list "(__s_01)" ( identifier ))) ;) (if_statement "if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }" if (parenthesized_expression "((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0))" ( (binary_expression "(local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)" (parenthesized_expression "(local_58 != (int *)0x0)" ( (binary_expression "local_58 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)" ( (comma_expression "piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0" (assignment_expression "piVar6 = (int *)FUN_000c0450(local_58)" identifier = (cast_expression "(int *)FUN_000c0450(local_58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000c0450(local_58)" identifier (argument_list "(local_58)" ( identifier ))))) , (binary_expression "local_68 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          local_68 = piVar6;\n        }" { (expression_statement "local_68 = piVar6;" (assignment_expression "local_68 = piVar6" identifier = identifier) ;) })) (expression_statement "local_f0 = local_68;" (assignment_expression "local_f0 = local_68" identifier = identifier) ;) }) (else_clause "else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }" else (compound_statement "{\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }" { (if_statement "if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }" if (parenthesized_expression "(iVar4 != 0xf)" ( (binary_expression "iVar4 != 0xf" identifier != number_literal) )) (compound_statement "{\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }" { (if_statement "if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }" if (parenthesized_expression "(6 < iVar4)" ( (binary_expression "6 < iVar4" number_literal < identifier) )) (compound_statement "{\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }" { (expression_statement "iVar18 = FUN_00044730();" (assignment_expression "iVar18 = FUN_00044730()" identifier = (call_expression "FUN_00044730()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar18 == 0) goto LAB_0013be74;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013be74;" goto statement_identifier ;)) (if_statement "if (10 < iVar4) goto LAB_0013c124;" if (parenthesized_expression "(10 < iVar4)" ( (binary_expression "10 < iVar4" number_literal < identifier) )) (goto_statement "goto LAB_0013c124;" goto statement_identifier ;)) })) (goto_statement "goto LAB_0013ba5f;" goto statement_identifier ;) })) (expression_statement "iVar4 = FUN_00044730();" (assignment_expression "iVar4 = FUN_00044730()" identifier = (call_expression "FUN_00044730()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }" { (expression_statement "local_f0 = (int *)FUN_00101610();" (assignment_expression "local_f0 = (int *)FUN_00101610()" identifier = (cast_expression "(int *)FUN_00101610()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00101610()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }" if (parenthesized_expression "(local_f0 == (int *)0x0)" ( (binary_expression "local_f0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }" { (expression_statement "FUN_00079e80();" (call_expression "FUN_00079e80()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00079e00();" (call_expression "FUN_00079e00()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) (do_statement "do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);" do (compound_statement "{\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            }" { (do_statement "do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);" do (compound_statement "{\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              }" { (expression_statement "iVar3 = FUN_000e7e00(0);" (assignment_expression "iVar3 = FUN_000e7e00(0)" identifier = (call_expression "FUN_000e7e00(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (if_statement "if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }" if (parenthesized_expression "(iVar3 != 100)" ( (binary_expression "iVar3 != 100" identifier != number_literal) )) (compound_statement "{\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }" { (expression_statement "local_f0 = (int *)FUN_000bfe40(0);" (assignment_expression "local_f0 = (int *)FUN_000bfe40(0)" identifier = (cast_expression "(int *)FUN_000bfe40(0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000bfe40(0)" identifier (argument_list "(0)" ( number_literal ))))) ;) (if_statement "if (local_f0 != (int *)0x0) goto LAB_0013c0e0;" if (parenthesized_expression "(local_f0 != (int *)0x0)" ( (binary_expression "local_f0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013c0e0;" goto statement_identifier ;)) (expression_statement "iVar3 = **(int **)(param_1 + 0x24);" (assignment_expression "iVar3 = **(int **)(param_1 + 0x24)" identifier = (pointer_expression "**(int **)(param_1 + 0x24)" * (pointer_expression "*(int **)(param_1 + 0x24)" * (cast_expression "(int **)(param_1 + 0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))))) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));" (assignment_expression "iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc))" identifier = (call_expression "FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc))" identifier (argument_list "(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc))" ( (binary_expression "unaff_EBP + 0x230e7" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0xdc)" * (cast_expression "(undefined4 *)(param_1 + 0xdc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xdc)" ( (binary_expression "param_1 + 0xdc" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }" { (expression_statement "local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);" (assignment_expression "local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0)" identifier = (cast_expression "(int *)FUN_00100700(0x80,0,&local_8c,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00100700(0x80,0,&local_8c,0)" identifier (argument_list "(0x80,0,&local_8c,0)" ( number_literal , number_literal , (pointer_expression "&local_8c" & identifier) , number_literal ))))) ;) (expression_statement "FUN_00044000(iVar4);" (call_expression "FUN_00044000(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))) ;) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (expression_statement "piVar6 = local_f0;" (assignment_expression "piVar6 = local_f0" identifier = identifier) ;) (expression_statement "uVar5 = local_8c;" (assignment_expression "uVar5 = local_8c" identifier = identifier) ;) (if_statement "if (local_f0 != (int *)0x0) goto LAB_0013d4fe;" if (parenthesized_expression "(local_f0 != (int *)0x0)" ( (binary_expression "local_f0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013d4fe;" goto statement_identifier ;)) (goto_statement "goto LAB_0013d234;" goto statement_identifier ;) })) (expression_statement "FUN_000c0450(local_8c);" (call_expression "FUN_000c0450(local_8c)" identifier (argument_list "(local_8c)" ( identifier ))) ;) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (expression_statement "local_f0 = (int *)0x7;" (assignment_expression "local_f0 = (int *)0x7" identifier = (cast_expression "(int *)0x7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) })) (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar7 = FUN_00045540();" (assignment_expression "uVar7 = FUN_00045540()" identifier = (call_expression "FUN_00045540()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(*(int *)(param_1 + 0xfc) < 1)" ( (binary_expression "*(int *)(param_1 + 0xfc) < 1" (pointer_expression "*(int *)(param_1 + 0xfc)" * (cast_expression "(int *)(param_1 + 0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xfc)" ( (binary_expression "param_1 + 0xfc" identifier + number_literal) )))) < number_literal) )) ;) (expression_statement "local_114 = 0;" (assignment_expression "local_114 = 0" identifier = number_literal) ;) (expression_statement "local_110 = 0;" (assignment_expression "local_110 = 0" identifier = number_literal) ;) (do_statement "do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));" do (compound_statement "{\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              }" { (expression_statement "local_68 = (int *)0x0;" (assignment_expression "local_68 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "ppiVar21 = &local_58;" (assignment_expression "ppiVar21 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) (for_statement "for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }" for ( (assignment_expression "iVar3 = 0xe" identifier = number_literal) ; (binary_expression "iVar3 != 0" identifier != number_literal) ; (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ) (compound_statement "{\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }" { (expression_statement "*ppiVar21 = (int *)0x0;" (assignment_expression "*ppiVar21 = (int *)0x0" (pointer_expression "*ppiVar21" * identifier) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;" (assignment_expression "ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "ppiVar21 + (uint)bVar24 * -2 + 1" (binary_expression "ppiVar21 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_5c = 0x13;" (assignment_expression "local_5c = 0x13" identifier = number_literal) ;) (expression_statement "local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);" (assignment_expression "local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58)" identifier = (cast_expression "(int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58)" identifier (argument_list "(0xfffffffe,0,0,0,1,&local_58)" ( number_literal , number_literal , number_literal , number_literal , number_literal , (pointer_expression "&local_58" & identifier) ))))) ;) (if_statement "if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }" if (parenthesized_expression "((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0))" ( (binary_expression "(local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)" (parenthesized_expression "(local_12c == (int *)0x0)" ( (binary_expression "local_12c == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)" ( (comma_expression "local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0" (assignment_expression "local_4c = &local_68" identifier = (pointer_expression "&local_68" & identifier)) , (comma_expression "local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0" (assignment_expression "local_12c = (int *)FUN_0012cf60(local_64)" identifier = (cast_expression "(int *)FUN_0012cf60(local_64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012cf60(local_64)" identifier (argument_list "(local_64)" ( identifier ))))) , (binary_expression "local_12c == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }" { (expression_statement "local_104 = 0;" (assignment_expression "local_104 = 0" identifier = number_literal) ;) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();" statement_identifier : (expression_statement "local_12c = (int *)FUN_0012ba30();" (assignment_expression "local_12c = (int *)FUN_0012ba30()" identifier = (cast_expression "(int *)FUN_0012ba30()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012ba30()" identifier (argument_list "()" ( ))))) ;)) (expression_statement "iVar3 = local_28;" (assignment_expression "iVar3 = local_28" identifier = identifier) ;) (if_statement "if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }" if (parenthesized_expression "(local_12c == (int *)0x64)" ( (binary_expression "local_12c == (int *)0x64" identifier == (cast_expression "(int *)0x64" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }" { (expression_statement "local_84 = (char *)0x0;" (assignment_expression "local_84 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (expression_statement "local_7c[0] = 0;" (assignment_expression "local_7c[0] = 0" (subscript_expression "local_7c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19 = (byte *)(local_24 + local_28);" (assignment_expression "pbVar19 = (byte *)(local_24 + local_28)" identifier = (cast_expression "(byte *)(local_24 + local_28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + local_28)" ( (binary_expression "local_24 + local_28" identifier + identifier) )))) ;) (expression_statement "local_7c[1] = 0;" (assignment_expression "local_7c[1] = 0" (subscript_expression "local_7c[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar4 = FUN_0003e400();" (assignment_expression "iVar4 = FUN_0003e400()" identifier = (call_expression "FUN_0003e400()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "pbVar22 = (byte *)(iVar3 + iVar4);" (assignment_expression "pbVar22 = (byte *)(iVar3 + iVar4)" identifier = (cast_expression "(byte *)(iVar3 + iVar4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + iVar4)" ( (binary_expression "iVar3 + iVar4" identifier + identifier) )))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }" if (parenthesized_expression "(pbVar22 < pbVar19)" ( (binary_expression "pbVar22 < pbVar19" identifier < identifier) )) (compound_statement "{\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }" { (while_statement "while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }" { (expression_statement "local_7c[2] = (uint)*pbVar22;" (assignment_expression "local_7c[2] = (uint)*pbVar22" (subscript_expression "local_7c[2]" identifier [ number_literal ]) = (binary_expression "(uint)*pbVar22" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }" if (parenthesized_expression "((char)*pbVar22 < '\0')" ( (binary_expression "(char)*pbVar22 < '\0'" (cast_expression "(char)*pbVar22" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar22" * identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }" { (expression_statement "uVar10 = local_7c[2] & 0x7f;" (assignment_expression "uVar10 = local_7c[2] & 0x7f" identifier = (binary_expression "local_7c[2] & 0x7f" (subscript_expression "local_7c[2]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "uVar20 = (uint)pbVar22[1] << 7;" (assignment_expression "uVar20 = (uint)pbVar22[1] << 7" identifier = (binary_expression "(uint)pbVar22[1] << 7" (cast_expression "(uint)pbVar22[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar22[1]" identifier [ number_literal ])) << number_literal)) ;) (expression_statement "local_7c[2] = uVar20 | uVar10;" (assignment_expression "local_7c[2] = uVar20 | uVar10" (subscript_expression "local_7c[2]" identifier [ number_literal ]) = (binary_expression "uVar20 | uVar10" identifier | identifier)) ;) (if_statement "if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }" if (parenthesized_expression "((uVar20 & 0x4000) == 0)" ( (binary_expression "(uVar20 & 0x4000) == 0" (parenthesized_expression "(uVar20 & 0x4000)" ( (binary_expression "uVar20 & 0x4000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) (expression_statement "local_7c[3] = 0;" (assignment_expression "local_7c[3] = 0" (subscript_expression "local_7c[3]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }" else (compound_statement "{\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }" { (expression_statement "uVar10 = uVar20 & 0x3fff | uVar10;" (assignment_expression "uVar10 = uVar20 & 0x3fff | uVar10" identifier = (binary_expression "uVar20 & 0x3fff | uVar10" (binary_expression "uVar20 & 0x3fff" identifier & number_literal) | identifier)) ;) (expression_statement "uVar20 = (uint)pbVar22[2] << 0xe;" (assignment_expression "uVar20 = (uint)pbVar22[2] << 0xe" identifier = (binary_expression "(uint)pbVar22[2] << 0xe" (cast_expression "(uint)pbVar22[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar22[2]" identifier [ number_literal ])) << number_literal)) ;) (expression_statement "local_7c[2] = uVar10 | uVar20;" (assignment_expression "local_7c[2] = uVar10 | uVar20" (subscript_expression "local_7c[2]" identifier [ number_literal ]) = (binary_expression "uVar10 | uVar20" identifier | identifier)) ;) (if_statement "if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }" if (parenthesized_expression "((uVar20 & 0x200000) == 0)" ( (binary_expression "(uVar20 & 0x200000) == 0" (parenthesized_expression "(uVar20 & 0x200000)" ( (binary_expression "uVar20 & 0x200000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }" { (expression_statement "iVar4 = 3;" (assignment_expression "iVar4 = 3" identifier = number_literal) ;) (expression_statement "local_7c[3] = 0;" (assignment_expression "local_7c[3] = 0" (subscript_expression "local_7c[3]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }" else (compound_statement "{\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }" { (expression_statement "uVar10 = uVar10 | uVar20 & 0x1fffff;" (assignment_expression "uVar10 = uVar10 | uVar20 & 0x1fffff" identifier = (binary_expression "uVar10 | uVar20 & 0x1fffff" identifier | (binary_expression "uVar20 & 0x1fffff" identifier & number_literal))) ;) (expression_statement "uVar20 = (uint)pbVar22[3] << 0x15;" (assignment_expression "uVar20 = (uint)pbVar22[3] << 0x15" identifier = (binary_expression "(uint)pbVar22[3] << 0x15" (cast_expression "(uint)pbVar22[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar22[3]" identifier [ number_literal ])) << number_literal)) ;) (expression_statement "local_7c[2] = uVar10 | uVar20;" (assignment_expression "local_7c[2] = uVar10 | uVar20" (subscript_expression "local_7c[2]" identifier [ number_literal ]) = (binary_expression "uVar10 | uVar20" identifier | identifier)) ;) (if_statement "if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }" if (parenthesized_expression "((uVar20 & 0x10000000) == 0)" ( (binary_expression "(uVar20 & 0x10000000) == 0" (parenthesized_expression "(uVar20 & 0x10000000)" ( (binary_expression "uVar20 & 0x10000000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }" { (expression_statement "iVar4 = 4;" (assignment_expression "iVar4 = 4" identifier = number_literal) ;) (expression_statement "local_7c[3] = 0;" (assignment_expression "local_7c[3] = 0" (subscript_expression "local_7c[3]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }" else (compound_statement "{\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }" { (expression_statement "uVar10 = uVar10 | uVar20 & 0xfffffff;" (assignment_expression "uVar10 = uVar10 | uVar20 & 0xfffffff" identifier = (binary_expression "uVar10 | uVar20 & 0xfffffff" identifier | (binary_expression "uVar20 & 0xfffffff" identifier & number_literal))) ;) (expression_statement "uVar20 = pbVar22[4] & 0x7f;" (assignment_expression "uVar20 = pbVar22[4] & 0x7f" identifier = (binary_expression "pbVar22[4] & 0x7f" (subscript_expression "pbVar22[4]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "uVar11 = uVar20 * 0x10000000;" (assignment_expression "uVar11 = uVar20 * 0x10000000" identifier = (binary_expression "uVar20 * 0x10000000" identifier * number_literal)) ;) (expression_statement "local_7c[2] = uVar10 + uVar11;" (assignment_expression "local_7c[2] = uVar10 + uVar11" (subscript_expression "local_7c[2]" identifier [ number_literal ]) = (binary_expression "uVar10 + uVar11" identifier + identifier)) ;) (expression_statement "local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);" (assignment_expression "local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11)" (subscript_expression "local_7c[3]" identifier [ number_literal ]) = (binary_expression "(uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11)" (parenthesized_expression "(uVar20 >> 4)" ( (binary_expression "uVar20 >> 4" identifier >> number_literal) )) + (cast_expression "(uint)CARRY4(uVar10,uVar11)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar10,uVar11)" identifier (argument_list "(uVar10,uVar11)" ( identifier , identifier )))))) ;) (if_statement "if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }" if (parenthesized_expression "((char)pbVar22[4] < '\0')" ( (binary_expression "(char)pbVar22[4] < '\0'" (cast_expression "(char)pbVar22[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar22[4]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }" { (expression_statement "local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;" (assignment_expression "local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8" (subscript_expression "local_7c[3]" identifier [ number_literal ]) = (binary_expression "local_7c[3] + (pbVar22[5] & 0x7f) * 8" (subscript_expression "local_7c[3]" identifier [ number_literal ]) + (binary_expression "(pbVar22[5] & 0x7f) * 8" (parenthesized_expression "(pbVar22[5] & 0x7f)" ( (binary_expression "pbVar22[5] & 0x7f" (subscript_expression "pbVar22[5]" identifier [ number_literal ]) & number_literal) )) * number_literal))) ;) (if_statement "if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }" if (parenthesized_expression "((char)pbVar22[5] < '\0')" ( (binary_expression "(char)pbVar22[5] < '\0'" (cast_expression "(char)pbVar22[5]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar22[5]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }" { (expression_statement "local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;" (assignment_expression "local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400" (subscript_expression "local_7c[3]" identifier [ number_literal ]) = (binary_expression "local_7c[3] + (pbVar22[6] & 0x7f) * 0x400" (subscript_expression "local_7c[3]" identifier [ number_literal ]) + (binary_expression "(pbVar22[6] & 0x7f) * 0x400" (parenthesized_expression "(pbVar22[6] & 0x7f)" ( (binary_expression "pbVar22[6] & 0x7f" (subscript_expression "pbVar22[6]" identifier [ number_literal ]) & number_literal) )) * number_literal))) ;) (if_statement "if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }" if (parenthesized_expression "((char)pbVar22[6] < '\0')" ( (binary_expression "(char)pbVar22[6] < '\0'" (cast_expression "(char)pbVar22[6]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar22[6]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }" { (expression_statement "local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;" (assignment_expression "local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000" (subscript_expression "local_7c[3]" identifier [ number_literal ]) = (binary_expression "local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000" (subscript_expression "local_7c[3]" identifier [ number_literal ]) + (binary_expression "(pbVar22[7] & 0x7f) * 0x20000" (parenthesized_expression "(pbVar22[7] & 0x7f)" ( (binary_expression "pbVar22[7] & 0x7f" (subscript_expression "pbVar22[7]" identifier [ number_literal ]) & number_literal) )) * number_literal))) ;) (if_statement "if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }" if (parenthesized_expression "((char)pbVar22[7] < '\0')" ( (binary_expression "(char)pbVar22[7] < '\0'" (cast_expression "(char)pbVar22[7]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar22[7]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }" { (expression_statement "local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;" (assignment_expression "local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000" (subscript_expression "local_7c[3]" identifier [ number_literal ]) = (binary_expression "local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000" (subscript_expression "local_7c[3]" identifier [ number_literal ]) + (binary_expression "(pbVar22[8] & 0x7f) * 0x1000000" (parenthesized_expression "(pbVar22[8] & 0x7f)" ( (binary_expression "pbVar22[8] & 0x7f" (subscript_expression "pbVar22[8]" identifier [ number_literal ]) & number_literal) )) * number_literal))) ;) (if_statement "if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }" if (parenthesized_expression "((char)pbVar22[8] < '\0')" ( (binary_expression "(char)pbVar22[8] < '\0'" (cast_expression "(char)pbVar22[8]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar22[8]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }" { (expression_statement "pbVar16 = pbVar22 + 10;" (assignment_expression "pbVar16 = pbVar22 + 10" identifier = (binary_expression "pbVar22 + 10" identifier + number_literal)) ;) (expression_statement "local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;" (assignment_expression "local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000" (subscript_expression "local_7c[3]" identifier [ number_literal ]) = (binary_expression "local_7c[3] + (uint)pbVar22[9] * -0x80000000" (subscript_expression "local_7c[3]" identifier [ number_literal ]) + (binary_expression "(uint)pbVar22[9] * -0x80000000" (cast_expression "(uint)pbVar22[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar22[9]" identifier [ number_literal ])) * number_literal))) ;) }) (else_clause "else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }" else (compound_statement "{\n                                          pbVar16 = pbVar22 + 9;\n                                        }" { (expression_statement "pbVar16 = pbVar22 + 9;" (assignment_expression "pbVar16 = pbVar22 + 9" identifier = (binary_expression "pbVar22 + 9" identifier + number_literal)) ;) }))) }) (else_clause "else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }" else (compound_statement "{\n                                        pbVar16 = pbVar22 + 8;\n                                      }" { (expression_statement "pbVar16 = pbVar22 + 8;" (assignment_expression "pbVar16 = pbVar22 + 8" identifier = (binary_expression "pbVar22 + 8" identifier + number_literal)) ;) }))) }) (else_clause "else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }" else (compound_statement "{\n                                      pbVar16 = pbVar22 + 7;\n                                    }" { (expression_statement "pbVar16 = pbVar22 + 7;" (assignment_expression "pbVar16 = pbVar22 + 7" identifier = (binary_expression "pbVar22 + 7" identifier + number_literal)) ;) }))) }) (else_clause "else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }" else (compound_statement "{\n                                    pbVar16 = pbVar22 + 6;\n                                  }" { (expression_statement "pbVar16 = pbVar22 + 6;" (assignment_expression "pbVar16 = pbVar22 + 6" identifier = (binary_expression "pbVar22 + 6" identifier + number_literal)) ;) }))) }) (else_clause "else {\n                                  pbVar16 = pbVar22 + 5;\n                                }" else (compound_statement "{\n                                  pbVar16 = pbVar22 + 5;\n                                }" { (expression_statement "pbVar16 = pbVar22 + 5;" (assignment_expression "pbVar16 = pbVar22 + 5" identifier = (binary_expression "pbVar22 + 5" identifier + number_literal)) ;) }))) (expression_statement "iVar4 = (int)pbVar16 - (int)pbVar22;" (assignment_expression "iVar4 = (int)pbVar16 - (int)pbVar22" identifier = (binary_expression "(int)pbVar16 - (int)pbVar22" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar22" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }))) }))) }))) }) (else_clause "else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }" else (compound_statement "{\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (expression_statement "local_7c[3] = 0;" (assignment_expression "local_7c[3] = 0" (subscript_expression "local_7c[3]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "pbVar22 = pbVar22 + iVar4;" (assignment_expression "pbVar22 = pbVar22 + iVar4" identifier = (binary_expression "pbVar22 + iVar4" identifier + identifier)) ;) (if_statement "if (pbVar19 <= pbVar22) break;" if (parenthesized_expression "(pbVar19 <= pbVar22)" ( (binary_expression "pbVar19 <= pbVar22" identifier <= identifier) )) (break_statement "break;" break ;)) (if_statement "if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }" if (parenthesized_expression "(local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3])" ( (binary_expression "local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]" (binary_expression "local_7c[3] == 0" (subscript_expression "local_7c[3]" identifier [ number_literal ]) == number_literal) && (binary_expression "(uint)(1 < local_7c[2]) <= -local_7c[3]" (call_expression "(uint)(1 < local_7c[2])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < local_7c[2])" ( (binary_expression "1 < local_7c[2]" number_literal < (subscript_expression "local_7c[2]" identifier [ number_literal ])) ))) <= (unary_expression "-local_7c[3]" - (subscript_expression "local_7c[3]" identifier [ number_literal ])))) )) (compound_statement "{\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }" { (expression_statement "local_7c[0] = 0;" (assignment_expression "local_7c[0] = 0" (subscript_expression "local_7c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_7c[1] = 0;" (assignment_expression "local_7c[1] = 0" (subscript_expression "local_7c[1]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }" if (parenthesized_expression "(local_7c[3] == 0 && local_7c[2] == 0)" ( (binary_expression "local_7c[3] == 0 && local_7c[2] == 0" (binary_expression "local_7c[3] == 0" (subscript_expression "local_7c[3]" identifier [ number_literal ]) == number_literal) && (binary_expression "local_7c[2] == 0" (subscript_expression "local_7c[2]" identifier [ number_literal ]) == number_literal)) )) (compound_statement "{\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }" { (expression_statement "iVar3 = FUN_0003e400(uVar28,iVar3);" (assignment_expression "iVar3 = FUN_0003e400(uVar28,iVar3)" identifier = (call_expression "FUN_0003e400(uVar28,iVar3)" identifier (argument_list "(uVar28,iVar3)" ( identifier , identifier )))) ;) (expression_statement "bVar23 = CARRY4((uint)local_84,local_7c[2]);" (assignment_expression "bVar23 = CARRY4((uint)local_84,local_7c[2])" identifier = (call_expression "CARRY4((uint)local_84,local_7c[2])" identifier (argument_list "((uint)local_84,local_7c[2])" ( (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier) , (subscript_expression "local_7c[2]" identifier [ number_literal ]) )))) ;) (expression_statement "local_84 = local_84 + local_7c[2];" (assignment_expression "local_84 = local_84 + local_7c[2]" identifier = (binary_expression "local_84 + local_7c[2]" identifier + (subscript_expression "local_7c[2]" identifier [ number_literal ]))) ;) (expression_statement "local_80 = local_80 + local_7c[3] + (uint)bVar23;" (assignment_expression "local_80 = local_80 + local_7c[3] + (uint)bVar23" identifier = (binary_expression "local_80 + local_7c[3] + (uint)bVar23" (binary_expression "local_80 + local_7c[3]" identifier + (subscript_expression "local_7c[3]" identifier [ number_literal ])) + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) (else_clause "else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }" else (compound_statement "{\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }" { (expression_statement "iVar3 = FUN_0003e400(uVar28,iVar3);" (assignment_expression "iVar3 = FUN_0003e400(uVar28,iVar3)" identifier = (call_expression "FUN_0003e400(uVar28,iVar3)" identifier (argument_list "(uVar28,iVar3)" ( identifier , identifier )))) ;) }))) (expression_statement "pbVar22 = pbVar22 + iVar3;" (assignment_expression "pbVar22 = pbVar22 + iVar3" identifier = (binary_expression "pbVar22 + iVar3" identifier + identifier)) ;) (if_statement "if (pbVar19 <= pbVar22) break;" if (parenthesized_expression "(pbVar19 <= pbVar22)" ( (binary_expression "pbVar19 <= pbVar22" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }" else (compound_statement "{\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }" { (expression_statement "bVar23 = CARRY4(uVar28,local_7c[2] - 2);" (assignment_expression "bVar23 = CARRY4(uVar28,local_7c[2] - 2)" identifier = (call_expression "CARRY4(uVar28,local_7c[2] - 2)" identifier (argument_list "(uVar28,local_7c[2] - 2)" ( identifier , (binary_expression "local_7c[2] - 2" (subscript_expression "local_7c[2]" identifier [ number_literal ]) - number_literal) )))) ;) (expression_statement "uVar28 = uVar28 + (local_7c[2] - 2);" (assignment_expression "uVar28 = uVar28 + (local_7c[2] - 2)" identifier = (binary_expression "uVar28 + (local_7c[2] - 2)" identifier + (parenthesized_expression "(local_7c[2] - 2)" ( (binary_expression "local_7c[2] - 2" (subscript_expression "local_7c[2]" identifier [ number_literal ]) - number_literal) )))) ;) (expression_statement "iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;" (assignment_expression "iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23" identifier = (binary_expression "iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23" (binary_expression "iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2])" (binary_expression "iVar3 + local_7c[3] + -1" (binary_expression "iVar3 + local_7c[3]" identifier + (subscript_expression "local_7c[3]" identifier [ number_literal ])) + number_literal) + (call_expression "(uint)(1 < local_7c[2])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < local_7c[2])" ( (binary_expression "1 < local_7c[2]" number_literal < (subscript_expression "local_7c[2]" identifier [ number_literal ])) )))) + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar20 = (int)local_84 * 9 + uVar7;" (assignment_expression "uVar20 = (int)local_84 * 9 + uVar7" identifier = (binary_expression "(int)local_84 * 9 + uVar7" (binary_expression "(int)local_84 * 9" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + identifier)) ;) (expression_statement "iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);" (assignment_expression "iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7)" identifier = (binary_expression "local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7)" (binary_expression "local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f)" (binary_expression "local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8)" (binary_expression "local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d)" identifier + (parenthesized_expression "(local_80 << 3 | (uint)local_84 >> 0x1d)" ( (binary_expression "local_80 << 3 | (uint)local_84 >> 0x1d" (binary_expression "local_80 << 3" identifier << number_literal) | (binary_expression "(uint)local_84 >> 0x1d" (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ))) + (cast_expression "(uint)CARRY4((uint)local_84,(int)local_84 * 8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_84,(int)local_84 * 8)" identifier (argument_list "((uint)local_84,(int)local_84 * 8)" ( (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier) , (binary_expression "(int)local_84 * 8" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) + (parenthesized_expression "((int)uVar7 >> 0x1f)" ( (binary_expression "(int)uVar7 >> 0x1f" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4((int)local_84 * 9,uVar7)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((int)local_84 * 9,uVar7)" identifier (argument_list "((int)local_84 * 9,uVar7)" ( (binary_expression "(int)local_84 * 9" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) , identifier )))))) ;) (expression_statement "uVar10 = uVar20 * 9 + local_114;" (assignment_expression "uVar10 = uVar20 * 9 + local_114" identifier = (binary_expression "uVar20 * 9 + local_114" (binary_expression "uVar20 * 9" identifier * number_literal) + identifier)) ;) (expression_statement "iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);" (assignment_expression "iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114)" identifier = (binary_expression "(iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114)" (binary_expression "(iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110" (binary_expression "(iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20)" (binary_expression "(iVar4 * 8 | uVar20 >> 0x1d) + iVar4" (parenthesized_expression "(iVar4 * 8 | uVar20 >> 0x1d)" ( (binary_expression "iVar4 * 8 | uVar20 >> 0x1d" (binary_expression "iVar4 * 8" identifier * number_literal) | (binary_expression "uVar20 >> 0x1d" identifier >> number_literal)) )) + identifier) + (cast_expression "(uint)CARRY4(uVar20 * 8,uVar20)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar20 * 8,uVar20)" identifier (argument_list "(uVar20 * 8,uVar20)" ( (binary_expression "uVar20 * 8" identifier * number_literal) , identifier ))))) + identifier) + (cast_expression "(uint)CARRY4(uVar20 * 9,local_114)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar20 * 9,local_114)" identifier (argument_list "(uVar20 * 9,local_114)" ( (binary_expression "uVar20 * 9" identifier * number_literal) , identifier )))))) ;) (expression_statement "uVar20 = uVar10 * 8 + uVar10 + local_7c[0];" (assignment_expression "uVar20 = uVar10 * 8 + uVar10 + local_7c[0]" identifier = (binary_expression "uVar10 * 8 + uVar10 + local_7c[0]" (binary_expression "uVar10 * 8 + uVar10" (binary_expression "uVar10 * 8" identifier * number_literal) + identifier) + (subscript_expression "local_7c[0]" identifier [ number_literal ]))) ;) (expression_statement "iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);" (assignment_expression "iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0])" identifier = (binary_expression "(iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0])" (binary_expression "(iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0])" (binary_expression "(iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f)" (binary_expression "(iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4" (parenthesized_expression "(iVar4 * 8 | uVar10 >> 0x1d)" ( (binary_expression "iVar4 * 8 | uVar10 >> 0x1d" (binary_expression "iVar4 * 8" identifier * number_literal) | (binary_expression "uVar10 >> 0x1d" identifier >> number_literal)) )) + identifier) + (parenthesized_expression "((int)local_7c[0] >> 0x1f)" ( (binary_expression "(int)local_7c[0] >> 0x1f" (cast_expression "(int)local_7c[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_7c[0]" identifier [ number_literal ])) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar10,local_7c[0])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar10,local_7c[0])" identifier (argument_list "(uVar10,local_7c[0])" ( identifier , (subscript_expression "local_7c[0]" identifier [ number_literal ]) ))))) + (cast_expression "(uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar10 * 8,uVar10 + local_7c[0])" identifier (argument_list "(uVar10 * 8,uVar10 + local_7c[0])" ( (binary_expression "uVar10 * 8" identifier * number_literal) , (binary_expression "uVar10 + local_7c[0]" identifier + (subscript_expression "local_7c[0]" identifier [ number_literal ])) )))))) ;) (expression_statement "uVar10 = uVar28 + uVar20 * 9;" (assignment_expression "uVar10 = uVar28 + uVar20 * 9" identifier = (binary_expression "uVar28 + uVar20 * 9" identifier + (binary_expression "uVar20 * 9" identifier * number_literal))) ;) (expression_statement "uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;" (assignment_expression "uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)" identifier = (binary_expression "((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)" (binary_expression "((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8)" (binary_expression "((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d)" (binary_expression "((int)uVar28 >> 0x1f) +\n                                   iVar4" (parenthesized_expression "((int)uVar28 >> 0x1f)" ( (binary_expression "(int)uVar28 >> 0x1f" (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + identifier) + (parenthesized_expression "(iVar4 * 8 | uVar20 >> 0x1d)" ( (binary_expression "iVar4 * 8 | uVar20 >> 0x1d" (binary_expression "iVar4 * 8" identifier * number_literal) | (binary_expression "uVar20 >> 0x1d" identifier >> number_literal)) ))) + (cast_expression "(uint)CARRY4(uVar20,uVar20 * 8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar20,uVar20 * 8)" identifier (argument_list "(uVar20,uVar20 * 8)" ( identifier , (binary_expression "uVar20 * 8" identifier * number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar28,uVar20 * 9)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar28,uVar20 * 9)" identifier (argument_list "(uVar28,uVar20 * 9)" ( identifier , (binary_expression "uVar20 * 9" identifier * number_literal) )))))) ;) (if_statement "if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }" if (parenthesized_expression "(0 < local_2c)" ( (binary_expression "0 < local_2c" number_literal < identifier) )) (compound_statement "{\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }" { (expression_statement "pcVar15 = local_30;" (assignment_expression "pcVar15 = local_30" identifier = identifier) ;) (do_statement "do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);" do (compound_statement "{\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            }" { (expression_statement "uVar17 = (uint)*pcVar15;" (assignment_expression "uVar17 = (uint)*pcVar15" identifier = (binary_expression "(uint)*pcVar15" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "uVar12 = uVar10 * 8;" (assignment_expression "uVar12 = uVar10 * 8" identifier = (binary_expression "uVar10 * 8" identifier * number_literal)) ;) (expression_statement "uVar11 = uVar10 >> 0x1d;" (assignment_expression "uVar11 = uVar10 >> 0x1d" identifier = (binary_expression "uVar10 >> 0x1d" identifier >> number_literal)) ;) (expression_statement "uVar13 = uVar12 + uVar17;" (assignment_expression "uVar13 = uVar12 + uVar17" identifier = (binary_expression "uVar12 + uVar17" identifier + identifier)) ;) (expression_statement "bVar23 = CARRY4(uVar10,uVar13);" (assignment_expression "bVar23 = CARRY4(uVar10,uVar13)" identifier = (call_expression "CARRY4(uVar10,uVar13)" identifier (argument_list "(uVar10,uVar13)" ( identifier , identifier )))) ;) (expression_statement "uVar10 = uVar10 + uVar13;" (assignment_expression "uVar10 = uVar10 + uVar13" identifier = (binary_expression "uVar10 + uVar13" identifier + identifier)) ;) (expression_statement "uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;" (assignment_expression "uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23" identifier = (binary_expression "uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23" (binary_expression "uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17)" (binary_expression "uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f)" (binary_expression "uVar20 + (uVar20 << 3 | uVar11)" identifier + (parenthesized_expression "(uVar20 << 3 | uVar11)" ( (binary_expression "uVar20 << 3 | uVar11" (binary_expression "uVar20 << 3" identifier << number_literal) | identifier) ))) + (parenthesized_expression "((int)uVar17 >> 0x1f)" ( (binary_expression "(int)uVar17 >> 0x1f" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar12,uVar17)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar12,uVar17)" identifier (argument_list "(uVar12,uVar17)" ( identifier , identifier ))))) + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_30 + local_2c != pcVar15)" ( (binary_expression "local_30 + local_2c != pcVar15" (binary_expression "local_30 + local_2c" identifier + identifier) != identifier) )) ;) })) (expression_statement "local_104 = local_104 ^ uVar10;" (assignment_expression "local_104 = local_104 ^ uVar10" identifier = (binary_expression "local_104 ^ uVar10" identifier ^ identifier)) ;) (expression_statement "local_100 = local_100 ^ uVar20;" (assignment_expression "local_100 = local_100 ^ uVar20" identifier = (binary_expression "local_100 ^ uVar20" identifier ^ identifier)) ;) }))) })) })) (goto_statement "goto LAB_0013c8a0;" goto statement_identifier ;) })) (expression_statement "local_d0 = local_d0 ^ local_104;" (assignment_expression "local_d0 = local_d0 ^ local_104" identifier = (binary_expression "local_d0 ^ local_104" identifier ^ identifier)) ;) (expression_statement "local_b4 = local_b4 ^ local_100;" (assignment_expression "local_b4 = local_b4 ^ local_100" identifier = (binary_expression "local_b4 ^ local_100" identifier ^ identifier)) ;) })) (expression_statement "piVar6 = local_58;" (assignment_expression "piVar6 = local_58" identifier = identifier) ;) (if_statement "if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }" if (parenthesized_expression "(0 < local_54)" ( (binary_expression "0 < local_54" number_literal < identifier) )) (compound_statement "{\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = local_54;" (assignment_expression "iVar3 = local_54" identifier = identifier) ;) (do_statement "do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);" do (compound_statement "{\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  }" { (while_statement "while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }" while (parenthesized_expression "(iVar18 = piVar6[iVar4], iVar18 == 0)" ( (comma_expression "iVar18 = piVar6[iVar4], iVar18 == 0" (assignment_expression "iVar18 = piVar6[iVar4]" identifier = (subscript_expression "piVar6[iVar4]" identifier [ identifier ])) , (binary_expression "iVar18 == 0" identifier == number_literal)) )) (compound_statement "{\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }" { (labeled_statement "LAB_0013c4bb:\n                      iVar4 = iVar4 + 1;" statement_identifier : (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;)) (if_statement "if (iVar3 <= iVar4) goto LAB_0013c5e2;" if (parenthesized_expression "(iVar3 <= iVar4)" ( (binary_expression "iVar3 <= iVar4" identifier <= identifier) )) (goto_statement "goto LAB_0013c5e2;" goto statement_identifier ;)) })) (if_statement "if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }" if (parenthesized_expression "((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0))" ( (binary_expression "(*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)" (parenthesized_expression "(*(int *)(iVar18 + 0x38) == 0)" ( (binary_expression "*(int *)(iVar18 + 0x38) == 0" (pointer_expression "*(int *)(iVar18 + 0x38)" * (cast_expression "(int *)(iVar18 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x38)" ( (binary_expression "iVar18 + 0x38" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)" ( (comma_expression "iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0" (assignment_expression "iVar3 = *(int *)(iVar18 + 0x40)" identifier = (pointer_expression "*(int *)(iVar18 + 0x40)" * (cast_expression "(int *)(iVar18 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x40)" ( (binary_expression "iVar18 + 0x40" identifier + number_literal) ))))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }" { (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) == 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" * (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7fb7a)" ( (binary_expression "unaff_EBP + 0x7fb7a" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier ))) ;) }) (else_clause "else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }" else (compound_statement "{\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }" { (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" * (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbd6)" ( (binary_expression "unaff_EBP + 0x7fbd6" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);" (assignment_expression "iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" * (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbb2)" ( (binary_expression "unaff_EBP + 0x7fbb2" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar9" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) - identifier)) ;) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier ))) ;) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" * (cast_expression "(code **)(unaff_EBP + 0x7fbde)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbde)" ( (binary_expression "unaff_EBP + 0x7fbde" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) }))) })) (if_statement "if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }" if (parenthesized_expression "((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0))" ( (binary_expression "(*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)" (parenthesized_expression "(*(char *)(iVar18 + 5) == '\0')" ( (binary_expression "*(char *)(iVar18 + 5) == '\0'" (pointer_expression "*(char *)(iVar18 + 5)" * (cast_expression "(char *)(iVar18 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 5)" ( (binary_expression "iVar18 + 5" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)" ( (comma_expression "iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0" (assignment_expression "iVar3 = *(int *)(iVar18 + 0x28)" identifier = (pointer_expression "*(int *)(iVar18 + 0x28)" * (cast_expression "(int *)(iVar18 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x28)" ( (binary_expression "iVar18 + 0x28" identifier + number_literal) ))))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }" { (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) == 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" * (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7fb7a)" ( (binary_expression "unaff_EBP + 0x7fb7a" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier ))) ;) }) (else_clause "else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }" else (compound_statement "{\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }" { (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" * (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbd6)" ( (binary_expression "unaff_EBP + 0x7fbd6" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);" (assignment_expression "iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" * (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbb2)" ( (binary_expression "unaff_EBP + 0x7fbb2" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar9" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) - identifier)) ;) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier ))) ;) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" * (cast_expression "(code **)(unaff_EBP + 0x7fbde)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbde)" ( (binary_expression "unaff_EBP + 0x7fbde" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) }))) })) (expression_statement "iVar3 = *(int *)(iVar18 + 0x34);" (assignment_expression "iVar3 = *(int *)(iVar18 + 0x34)" identifier = (pointer_expression "*(int *)(iVar18 + 0x34)" * (cast_expression "(int *)(iVar18 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x34)" ( (binary_expression "iVar18 + 0x34" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }" { (expression_statement "iVar9 = *(int *)(iVar3 + 0x14);" (assignment_expression "iVar9 = *(int *)(iVar3 + 0x14)" identifier = (pointer_expression "*(int *)(iVar3 + 0x14)" * (cast_expression "(int *)(iVar3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }" if (parenthesized_expression "(*(int *)(iVar9 + 0xc) != 0)" ( (binary_expression "*(int *)(iVar9 + 0xc) != 0" (pointer_expression "*(int *)(iVar9 + 0xc)" * (cast_expression "(int *)(iVar9 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" * (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbd6)" ( (binary_expression "unaff_EBP + 0x7fbd6" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar9 + 0xc))" ( (pointer_expression "*(int *)(iVar9 + 0xc)" * (cast_expression "(int *)(iVar9 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) ))) ;) })) (expression_statement "FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));" (call_expression "FUN_000c0450(*(undefined4 *)(iVar3 + 0x10))" identifier (argument_list "(*(undefined4 *)(iVar3 + 0x10))" ( (pointer_expression "*(undefined4 *)(iVar3 + 0x10)" * (cast_expression "(undefined4 *)(iVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) ))) ;) (if_statement "if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }" if (parenthesized_expression "(*(int *)(iVar9 + 0x1e0) == 0)" ( (binary_expression "*(int *)(iVar9 + 0x1e0) == 0" (pointer_expression "*(int *)(iVar9 + 0x1e0)" * (cast_expression "(int *)(iVar9 + 0x1e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1e0)" ( (binary_expression "iVar9 + 0x1e0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }" { (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) == 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" * (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7fb7a)" ( (binary_expression "unaff_EBP + 0x7fb7a" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier ))) ;) }) (else_clause "else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }" else (compound_statement "{\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }" { (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" * (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbd6)" ( (binary_expression "unaff_EBP + 0x7fbd6" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);" (assignment_expression "iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" * (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbb2)" ( (binary_expression "unaff_EBP + 0x7fbb2" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar8" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) - identifier)) ;) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier ))) ;) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" * (cast_expression "(code **)(unaff_EBP + 0x7fbde)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbde)" ( (binary_expression "unaff_EBP + 0x7fbde" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) }))) }) (else_clause "else {\n                        FUN_0003a540();\n                      }" else (compound_statement "{\n                        FUN_0003a540();\n                      }" { (expression_statement "FUN_0003a540();" (call_expression "FUN_0003a540()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }" if (parenthesized_expression "(*(int *)(iVar9 + 0xc) != 0)" ( (binary_expression "*(int *)(iVar9 + 0xc) != 0" (pointer_expression "*(int *)(iVar9 + 0xc)" * (cast_expression "(int *)(iVar9 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" * (cast_expression "(code **)(unaff_EBP + 0x7fbde)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbde)" ( (binary_expression "unaff_EBP + 0x7fbde" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar9 + 0xc))" ( (pointer_expression "*(int *)(iVar9 + 0xc)" * (cast_expression "(int *)(iVar9 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) ))) ;) })) })) (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" * (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7fb7a)" ( (binary_expression "unaff_EBP + 0x7fb7a" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }" { (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" * (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbd6)" ( (binary_expression "unaff_EBP + 0x7fbd6" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);" (assignment_expression "iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(iVar18)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" * (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbb2)" ( (binary_expression "unaff_EBP + 0x7fbb2" identifier + number_literal) ))))) )) (argument_list "(iVar18)" ( identifier )))) ;) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar3" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) - identifier)) ;) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar18);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar18)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(iVar18)" ( identifier ))) ;) (expression_statement "iVar3 = local_54;" (assignment_expression "iVar3 = local_54" identifier = identifier) ;) (expression_statement "piVar6 = local_58;" (assignment_expression "piVar6 = local_58" identifier = identifier) ;) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" * (cast_expression "(code **)(unaff_EBP + 0x7fbde)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbde)" ( (binary_expression "unaff_EBP + 0x7fbde" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) (expression_statement "iVar3 = local_54;" (assignment_expression "iVar3 = local_54" identifier = identifier) ;) (expression_statement "piVar6 = local_58;" (assignment_expression "piVar6 = local_58" identifier = identifier) ;) })) (goto_statement "goto LAB_0013c4bb;" goto statement_identifier ;) })) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar18);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar18)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(iVar18)" ( identifier ))) ;) (expression_statement "iVar3 = local_54;" (assignment_expression "iVar3 = local_54" identifier = identifier) ;) (expression_statement "piVar6 = local_58;" (assignment_expression "piVar6 = local_58" identifier = identifier) ;) }) while (parenthesized_expression "(iVar4 < local_54)" ( (binary_expression "iVar4 < local_54" identifier < identifier) )) ;) })) (labeled_statement "LAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }" statement_identifier : (if_statement "if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }" { (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) == 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" * (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7fb7a)" ( (binary_expression "unaff_EBP + 0x7fb7a" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(piVar6);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(piVar6)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(piVar6)" ( identifier ))) ;) }) (else_clause "else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }" else (compound_statement "{\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }" { (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" * (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbd6)" ( (binary_expression "unaff_EBP + 0x7fbd6" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);" (assignment_expression "iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(piVar6)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" * (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbb2)" ( (binary_expression "unaff_EBP + 0x7fbb2" identifier + number_literal) ))))) )) (argument_list "(piVar6)" ( identifier )))) ;) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar3" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) - identifier)) ;) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(piVar6);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(piVar6)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(piVar6)" ( identifier ))) ;) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" * (cast_expression "(code **)(unaff_EBP + 0x7fbde)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbde)" ( (binary_expression "unaff_EBP + 0x7fbde" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) }))) }))) (expression_statement "iVar3 = local_48;" (assignment_expression "iVar3 = local_48" identifier = identifier) ;) (if_statement "if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }" if (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) (compound_statement "{\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }" { (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) == 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" * (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7fb7a)" ( (binary_expression "unaff_EBP + 0x7fb7a" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(local_48);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(local_48)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(local_48)" ( identifier ))) ;) }) (else_clause "else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }" else (compound_statement "{\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }" { (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" * (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbd6)" ( (binary_expression "unaff_EBP + 0x7fbd6" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);" (assignment_expression "iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" * (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbb2)" ( (binary_expression "unaff_EBP + 0x7fbb2" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar4" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) - identifier)) ;) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier ))) ;) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" * (cast_expression "(code **)(unaff_EBP + 0x7fbde)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbde)" ( (binary_expression "unaff_EBP + 0x7fbde" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) }))) })) (expression_statement "bVar23 = 0xfffffffe < local_114;" (assignment_expression "bVar23 = 0xfffffffe < local_114" identifier = (binary_expression "0xfffffffe < local_114" number_literal < identifier)) ;) (expression_statement "local_114 = local_114 + 1;" (assignment_expression "local_114 = local_114 + 1" identifier = (binary_expression "local_114 + 1" identifier + number_literal)) ;) (expression_statement "local_110 = local_110 + (uint)bVar23;" (assignment_expression "local_110 = local_110 + (uint)bVar23" identifier = (binary_expression "local_110 + (uint)bVar23" identifier + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "((int)local_114 < *(int *)(param_1 + 0xfc))" ( (binary_expression "(int)local_114 < *(int *)(param_1 + 0xfc)" (cast_expression "(int)local_114" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(param_1 + 0xfc)" * (cast_expression "(int *)(param_1 + 0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xfc)" ( (binary_expression "param_1 + 0xfc" identifier + number_literal) ))))) )) ;) }) while (parenthesized_expression "(local_12c == (int *)0x0)" ( (binary_expression "local_12c == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "FUN_000bfe40(0);" (call_expression "FUN_000bfe40(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "local_f0 = local_12c;" (assignment_expression "local_f0 = local_12c" identifier = identifier) ;) })) }) (else_clause "else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }" else (compound_statement "{\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }" { (expression_statement "iVar4 = FUN_00044730();" (assignment_expression "iVar4 = FUN_00044730()" identifier = (call_expression "FUN_00044730()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 == 0) goto LAB_0013be74;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013be74;" goto statement_identifier ;)) (labeled_statement "LAB_0013c124:\n          iVar4 = FUN_00044730();" statement_identifier : (expression_statement "iVar4 = FUN_00044730();" (assignment_expression "iVar4 = FUN_00044730()" identifier = (call_expression "FUN_00044730()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar4 != 0) goto LAB_0013ba5f;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0013ba5f;" goto statement_identifier ;)) (expression_statement "local_68 = (int *)0x0;" (assignment_expression "local_68 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar15 = (char *)(iVar3 + 10);" (assignment_expression "pcVar15 = (char *)(iVar3 + 10)" identifier = (cast_expression "(char *)(iVar3 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 10)" ( (binary_expression "iVar3 + 10" identifier + number_literal) )))) ;) (expression_statement "local_58 = (int *)0x0;" (assignment_expression "local_58 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "cVar2 = *(char *)(iVar3 + 10);" (assignment_expression "cVar2 = *(char *)(iVar3 + 10)" identifier = (pointer_expression "*(char *)(iVar3 + 10)" * (cast_expression "(char *)(iVar3 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 10)" ( (binary_expression "iVar3 + 10" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }" if (parenthesized_expression "((byte)(cVar2 - 0x30U) < 10)" ( (binary_expression "(byte)(cVar2 - 0x30U) < 10" (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 - 0x30U)" ( (binary_expression "cVar2 - 0x30U" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }" { (do_statement "do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);" do (compound_statement "{\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            }" { (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = cVar2 + -0x30 + iVar3 * 10;" (assignment_expression "iVar3 = cVar2 + -0x30 + iVar3 * 10" identifier = (binary_expression "cVar2 + -0x30 + iVar3 * 10" (binary_expression "cVar2 + -0x30" identifier + number_literal) + (binary_expression "iVar3 * 10" identifier * number_literal))) ;) (expression_statement "cVar2 = *pcVar15;" (assignment_expression "cVar2 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (if_statement "if (9 < (byte)(cVar2 - 0x30U)) break;" if (parenthesized_expression "(9 < (byte)(cVar2 - 0x30U))" ( (binary_expression "9 < (byte)(cVar2 - 0x30U)" number_literal < (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 - 0x30U)" ( (binary_expression "cVar2 - 0x30U" identifier - number_literal) )))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(iVar3 < 0xccccccb)" ( (binary_expression "iVar3 < 0xccccccb" identifier < number_literal) )) ;) (if_statement "if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }" if (parenthesized_expression "((iVar3 == 1) || (0x10 < iVar3))" ( (binary_expression "(iVar3 == 1) || (0x10 < iVar3)" (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) || (parenthesized_expression "(0x10 < iVar3)" ( (binary_expression "0x10 < iVar3" number_literal < identifier) ))) )) (compound_statement "{\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }" { (expression_statement "*(undefined4 *)(param_1 + 0x30) = 8;" (assignment_expression "*(undefined4 *)(param_1 + 0x30) = 8" (pointer_expression "*(undefined4 *)(param_1 + 0x30)" * (cast_expression "(undefined4 *)(param_1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }" else (compound_statement "{\n              *(int *)(param_1 + 0x30) = iVar3;\n            }" { (expression_statement "*(int *)(param_1 + 0x30) = iVar3;" (assignment_expression "*(int *)(param_1 + 0x30) = iVar3" (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) }))) }) (else_clause "else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }" else (compound_statement "{\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }" { (expression_statement "*(undefined4 *)(param_1 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x30) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x30)" * (cast_expression "(undefined4 *)(param_1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = number_literal) ;) }))) (if_statement "if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }" if (parenthesized_expression "(*(char *)(param_1 + 0xe9) == '\0')" ( (binary_expression "*(char *)(param_1 + 0xe9) == '\0'" (pointer_expression "*(char *)(param_1 + 0xe9)" * (cast_expression "(char *)(param_1 + 0xe9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe9)" ( (binary_expression "param_1 + 0xe9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }" { (expression_statement "FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));" (call_expression "FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14))" identifier (argument_list "(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14))" ( (pointer_expression "&local_68" & identifier) , (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , (binary_expression "unaff_EBP + 0x324ae" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) ))) ;) (expression_statement "local_f0 = local_68;" (assignment_expression "local_f0 = local_68" identifier = identifier) ;) (if_statement "if (local_68 != (int *)0x0) goto LAB_0013c0e0;" if (parenthesized_expression "(local_68 != (int *)0x0)" ( (binary_expression "local_68 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013c0e0;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)(param_1 + 0xe9) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xe9) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xe9)" * (cast_expression "(undefined1 *)(param_1 + 0xe9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe9)" ( (binary_expression "param_1 + 0xe9" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "local_f0 = (int *)FUN_00101610();" (assignment_expression "local_f0 = (int *)FUN_00101610()" identifier = (cast_expression "(int *)FUN_00101610()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00101610()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_68 = local_f0;" (assignment_expression "local_68 = local_f0" identifier = identifier) ;) (if_statement "if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }" if (parenthesized_expression "(local_f0 == (int *)0x0)" ( (binary_expression "local_f0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }" { (expression_statement "FUN_00079e80();" (call_expression "FUN_00079e80()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00079e00();" (call_expression "FUN_00079e00()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000e7e00(local_58);" (call_expression "FUN_000e7e00(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "local_f0 = (int *)FUN_000bfe40(local_58);" (assignment_expression "local_f0 = (int *)FUN_000bfe40(local_58)" identifier = (cast_expression "(int *)FUN_000bfe40(local_58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000bfe40(local_58)" identifier (argument_list "(local_58)" ( identifier ))))) ;) })) }))) }))) (labeled_statement "LAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);" statement_identifier : (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) })) (expression_statement "piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4];" (assignment_expression "piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4]" identifier = (cast_expression "(int *)param_3[*(int *)(param_1 + 0x18) + 4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[*(int *)(param_1 + 0x18) + 4]" identifier [ (binary_expression "*(int *)(param_1 + 0x18) + 4" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) + number_literal) ]))) ;) (expression_statement "uVar1 = *(ushort *)(piVar6 + 2);" (assignment_expression "uVar1 = *(ushort *)(piVar6 + 2)" identifier = (pointer_expression "*(ushort *)(piVar6 + 2)" * (cast_expression "(ushort *)(piVar6 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 2)" ( (binary_expression "piVar6 + 2" identifier + number_literal) ))))) ;) (if_statement "if ((uVar1 & 4) == 0) {\n      if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }\n    }\n    else {\n      iVar3 = *piVar6;\n    }" if (parenthesized_expression "((uVar1 & 4) == 0)" ( (binary_expression "(uVar1 & 4) == 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }\n    }" { (if_statement "if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }" if (parenthesized_expression "((uVar1 & 8) == 0)" ( (binary_expression "(uVar1 & 8) == 0" (parenthesized_expression "(uVar1 & 8)" ( (binary_expression "uVar1 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }" { (if_statement "if ((uVar1 & 0x12) == 0) goto LAB_0013b900;" if (parenthesized_expression "((uVar1 & 0x12) == 0)" ( (binary_expression "(uVar1 & 0x12) == 0" (parenthesized_expression "(uVar1 & 0x12)" ( (binary_expression "uVar1 & 0x12" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0013b900;" goto statement_identifier ;)) (expression_statement "iVar3 = FUN_0003c930();" (assignment_expression "iVar3 = FUN_0003c930()" identifier = (call_expression "FUN_0003c930()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }" else (compound_statement "{\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }" { (expression_statement "iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);" (assignment_expression "iVar3 = FUN_0003c8b0(*piVar6,piVar6[1])" identifier = (call_expression "FUN_0003c8b0(*piVar6,piVar6[1])" identifier (argument_list "(*piVar6,piVar6[1])" ( (pointer_expression "*piVar6" * identifier) , (subscript_expression "piVar6[1]" identifier [ number_literal ]) )))) ;) }))) }) (else_clause "else {\n      iVar3 = *piVar6;\n    }" else (compound_statement "{\n      iVar3 = *piVar6;\n    }" { (expression_statement "iVar3 = *piVar6;" (assignment_expression "iVar3 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) }))) (if_statement "if (iVar3 < 0) {\n      local_98 = (int *)0x13;\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba95;\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      local_98 = (int *)0x13;\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba95;\n    }" { (expression_statement "local_98 = (int *)0x13;" (assignment_expression "local_98 = (int *)0x13" identifier = (cast_expression "(int *)0x13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0013ba95;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0013b900:\n  iVar3 = FUN_00067fc0();" statement_identifier : (expression_statement "iVar3 = FUN_00067fc0();" (assignment_expression "iVar3 = FUN_00067fc0()" identifier = (call_expression "FUN_00067fc0()" identifier (argument_list "()" ( )))) ;)) (if_statement "if ((iVar3 != 0) || (__s = (void *)FUN_00055780(), __s == (void *)0x0)) {\n    local_98 = (int *)0x7;\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    goto LAB_0013ba95;\n  }" if (parenthesized_expression "((iVar3 != 0) || (__s = (void *)FUN_00055780(), __s == (void *)0x0))" ( (binary_expression "(iVar3 != 0) || (__s = (void *)FUN_00055780(), __s == (void *)0x0)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) || (parenthesized_expression "(__s = (void *)FUN_00055780(), __s == (void *)0x0)" ( (comma_expression "__s = (void *)FUN_00055780(), __s == (void *)0x0" (assignment_expression "__s = (void *)FUN_00055780()" identifier = (cast_expression "(void *)FUN_00055780()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00055780()" identifier (argument_list "()" ( ))))) , (binary_expression "__s == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    local_98 = (int *)0x7;\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    goto LAB_0013ba95;\n  }" { (expression_statement "local_98 = (int *)0x7;" (assignment_expression "local_98 = (int *)0x7" identifier = (cast_expression "(int *)0x7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0013ba95;" goto statement_identifier ;) })) (expression_statement "iVar3 = *(int *)(param_1 + 0x18) + 1;" (assignment_expression "iVar3 = *(int *)(param_1 + 0x18) + 1" identifier = (binary_expression "*(int *)(param_1 + 0x18) + 1" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "memset(__s,0,iVar3 * 8);" (call_expression "memset(__s,0,iVar3 * 8)" identifier (argument_list "(__s,0,iVar3 * 8)" ( identifier , number_literal , (binary_expression "iVar3 * 8" identifier * number_literal) ))) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (if_statement "if (*(int *)(param_1 + 0x108) == 0) {\n    local_98 = (int *)FUN_00101610();\n    piVar6 = local_58;\n    if (local_98 == (int *)0x0) {\n      iVar4 = FUN_00079820();\n      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }\n      FUN_000e7e00(local_58);\n      local_98 = (int *)FUN_000bfe40(local_58);\n      if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }\n  }\n  else {\n    local_98 = (int *)0x0;\n    if (param_2 < 2) {\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }\n    else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }\n    if (*(char *)(param_1 + 0xe8) != '\0') {\n      FUN_00111db0(__s,local_94);\n    }\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x108) == 0)" ( (binary_expression "*(int *)(param_1 + 0x108) == 0" (pointer_expression "*(int *)(param_1 + 0x108)" * (cast_expression "(int *)(param_1 + 0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_98 = (int *)FUN_00101610();\n    piVar6 = local_58;\n    if (local_98 == (int *)0x0) {\n      iVar4 = FUN_00079820();\n      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }\n      FUN_000e7e00(local_58);\n      local_98 = (int *)FUN_000bfe40(local_58);\n      if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }\n  }" { (expression_statement "local_98 = (int *)FUN_00101610();" (assignment_expression "local_98 = (int *)FUN_00101610()" identifier = (cast_expression "(int *)FUN_00101610()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00101610()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar6 = local_58;" (assignment_expression "piVar6 = local_58" identifier = identifier) ;) (if_statement "if (local_98 == (int *)0x0) {\n      iVar4 = FUN_00079820();\n      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }\n      FUN_000e7e00(local_58);\n      local_98 = (int *)FUN_000bfe40(local_58);\n      if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }" if (parenthesized_expression "(local_98 == (int *)0x0)" ( (binary_expression "local_98 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar4 = FUN_00079820();\n      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }\n      FUN_000e7e00(local_58);\n      local_98 = (int *)FUN_000bfe40(local_58);\n      if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }" { (expression_statement "iVar4 = FUN_00079820();" (assignment_expression "iVar4 = FUN_00079820()" identifier = (call_expression "FUN_00079820()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }" if (parenthesized_expression "((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0))" ( (binary_expression "(iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) && (parenthesized_expression "(*(int *)(*piVar6 + 0xc) != 0)" ( (binary_expression "*(int *)(*piVar6 + 0xc) != 0" (pointer_expression "*(int *)(*piVar6 + 0xc)" * (cast_expression "(int *)(*piVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + 0xc)" ( (binary_expression "*piVar6 + 0xc" (pointer_expression "*piVar6" * identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" * (cast_expression "(code **)(unaff_EBP + 0x7fbde)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbde)" ( (binary_expression "unaff_EBP + 0x7fbde" identifier + number_literal) ))))) )) (argument_list "(*(int *)(*piVar6 + 0xc))" ( (pointer_expression "*(int *)(*piVar6 + 0xc)" * (cast_expression "(int *)(*piVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + 0xc)" ( (binary_expression "*piVar6 + 0xc" (pointer_expression "*piVar6" * identifier) + number_literal) )))) ))) ;) })) (expression_statement "FUN_000e7e00(local_58);" (call_expression "FUN_000e7e00(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "local_98 = (int *)FUN_000bfe40(local_58);" (assignment_expression "local_98 = (int *)FUN_000bfe40(local_58)" identifier = (cast_expression "(int *)FUN_000bfe40(local_58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000bfe40(local_58)" identifier (argument_list "(local_58)" ( identifier ))))) ;) (if_statement "if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }" if (parenthesized_expression "(local_98 == (int *)0x0)" ( (binary_expression "local_98 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }" { (if_statement "if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }" if (parenthesized_expression "(1 < param_2)" ( (binary_expression "1 < param_2" number_literal < identifier) )) (compound_statement "{\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }" { (if_statement "if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;" if (parenthesized_expression "(*(int *)(param_1 + 0x28) == 0)" ( (binary_expression "*(int *)(param_1 + 0x28) == 0" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0013bc30;" goto statement_identifier ;)) (goto_statement "goto LAB_0013c280;" goto statement_identifier ;) })) (goto_statement "goto LAB_0013baf0;" goto statement_identifier ;) })) })) }) (else_clause "else {\n    local_98 = (int *)0x0;\n    if (param_2 < 2) {\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }\n    else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }\n    if (*(char *)(param_1 + 0xe8) != '\0') {\n      FUN_00111db0(__s,local_94);\n    }\n  }" else (compound_statement "{\n    local_98 = (int *)0x0;\n    if (param_2 < 2) {\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }\n    else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }\n    if (*(char *)(param_1 + 0xe8) != '\0') {\n      FUN_00111db0(__s,local_94);\n    }\n  }" { (expression_statement "local_98 = (int *)0x0;" (assignment_expression "local_98 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_2 < 2) {\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }\n    else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }" if (parenthesized_expression "(param_2 < 2)" ( (binary_expression "param_2 < 2" identifier < number_literal) )) (compound_statement "{\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }" { (labeled_statement "LAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }" statement_identifier : (if_statement "if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }" if (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')" ( (binary_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" * (cast_expression "(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" ( (binary_expression "unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" identifier + number_literal) + (parenthesized_expression "(*(ushort *)(*param_3 + 8) & 0x1f)" ( (binary_expression "*(ushort *)(*param_3 + 8) & 0x1f" (pointer_expression "*(ushort *)(*param_3 + 8)" * (cast_expression "(ushort *)(*param_3 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_3 + 8)" ( (binary_expression "*param_3 + 8" (pointer_expression "*param_3" * identifier) + number_literal) )))) & number_literal) ))) )))) != (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }" { (labeled_statement "LAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);" statement_identifier : (expression_statement "piVar6 = (int *)FUN_0013b480(__s);" (assignment_expression "piVar6 = (int *)FUN_0013b480(__s)" identifier = (cast_expression "(int *)FUN_0013b480(__s)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013b480(__s)" identifier (argument_list "(__s)" ( identifier ))))) ;)) (expression_statement "local_98 = piVar6;" (assignment_expression "local_98 = piVar6" identifier = identifier) ;) (goto_statement "goto LAB_0013bcfe;" goto statement_identifier ;) }))) }) (else_clause "else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }" else (if_statement "if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x28) == 0)" ( (binary_expression "*(int *)(param_1 + 0x28) == 0" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }" { (labeled_statement "LAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }" statement_identifier : (if_statement "if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }" if (parenthesized_expression "((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05'))" ( (binary_expression "(*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')" (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05')" ( (binary_expression "*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f))" * (cast_expression "(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f))" ( (binary_expression "unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" identifier + number_literal) + (parenthesized_expression "(*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)" ( (binary_expression "*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f" (pointer_expression "*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8)" * (cast_expression "(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3[*(int *)(param_1 + 0x18) + 3] + 8)" ( (binary_expression "param_3[*(int *)(param_1 + 0x18) + 3] + 8" (subscript_expression "param_3[*(int *)(param_1 + 0x18) + 3]" identifier [ (binary_expression "*(int *)(param_1 + 0x18) + 3" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) + number_literal) ]) + number_literal) )))) & number_literal) ))) )))) == (char_literal "'\x05'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')" ( (binary_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f))" * (cast_expression "(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f))" ( (binary_expression "unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" identifier + number_literal) + (parenthesized_expression "(*(ushort *)(param_3[1] + 8) & 0x1f)" ( (binary_expression "*(ushort *)(param_3[1] + 8) & 0x1f" (pointer_expression "*(ushort *)(param_3[1] + 8)" * (cast_expression "(ushort *)(param_3[1] + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3[1] + 8)" ( (binary_expression "param_3[1] + 8" (subscript_expression "param_3[1]" identifier [ number_literal ]) + number_literal) )))) & number_literal) ))) )))) == (char_literal "'\x05'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_0013c280:\n        bVar23 = false;\n      }" { (labeled_statement "LAB_0013c280:\n        bVar23 = false;" statement_identifier : (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;)) }) (else_clause "else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }" else (compound_statement "{\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }" { (if_statement "if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }" if (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05')" ( (binary_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" * (cast_expression "(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" ( (binary_expression "unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" identifier + number_literal) + (parenthesized_expression "(*(ushort *)(*param_3 + 8) & 0x1f)" ( (binary_expression "*(ushort *)(*param_3 + 8) & 0x1f" (pointer_expression "*(ushort *)(*param_3 + 8)" * (cast_expression "(ushort *)(*param_3 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_3 + 8)" ( (binary_expression "*param_3 + 8" (pointer_expression "*param_3" * identifier) + number_literal) )))) & number_literal) ))) )))) == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }" { (labeled_statement "LAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }" statement_identifier : (if_statement "if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }" if (parenthesized_expression "((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             )" ( (binary_expression "(&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'" (subscript_expression "(&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP]" (parenthesized_expression "(&UNK_000274d9)" ( (pointer_expression "&UNK_000274d9" & identifier) )) [ (binary_expression "(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP" (binary_expression "(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*(int *)(param_1 + 0xc) + 0x52)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xc) + 0x52)" ( (binary_expression "*(int *)(param_1 + 0xc) + 0x52" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal) )))) + identifier) ]) == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }" { (expression_statement "local_98 = (int *)FUN_0013b480(__s);" (assignment_expression "local_98 = (int *)FUN_0013b480(__s)" identifier = (cast_expression "(int *)FUN_0013b480(__s)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013b480(__s)" identifier (argument_list "(__s)" ( identifier ))))) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) }) (else_clause "else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }" else (compound_statement "{\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }" { (expression_statement "local_98 = (int *)FUN_0010b320();" (assignment_expression "local_98 = (int *)FUN_0010b320()" identifier = (cast_expression "(int *)FUN_0010b320()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010b320()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" identifier = true) ;) })))) }) (else_clause "else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }" else (compound_statement "{\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }" { (expression_statement "lVar25 = FUN_00045540();" (assignment_expression "lVar25 = FUN_00045540()" identifier = (call_expression "FUN_00045540()" identifier (argument_list "()" ( )))) ;) (expression_statement "lVar26 = FUN_00045540();" (assignment_expression "lVar26 = FUN_00045540()" identifier = (call_expression "FUN_00045540()" identifier (argument_list "()" ( )))) ;) (if_statement "if (lVar25 != lVar26) goto LAB_0013bc87;" if (parenthesized_expression "(lVar25 != lVar26)" ( (binary_expression "lVar25 != lVar26" identifier != identifier) )) (goto_statement "goto LAB_0013bc87;" goto statement_identifier ;)) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) }))) (if_statement "if (local_98 != (int *)0x0) goto LAB_0013bb29;" if (parenthesized_expression "(local_98 != (int *)0x0)" ( (binary_expression "local_98 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013bb29;" goto statement_identifier ;)) })))) (if_statement "if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;" if (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')" ( (binary_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" * (cast_expression "(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" ( (binary_expression "unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" identifier + number_literal) + (parenthesized_expression "(*(ushort *)(*param_3 + 8) & 0x1f)" ( (binary_expression "*(ushort *)(*param_3 + 8) & 0x1f" (pointer_expression "*(ushort *)(*param_3 + 8)" * (cast_expression "(ushort *)(*param_3 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_3 + 8)" ( (binary_expression "*param_3 + 8" (pointer_expression "*param_3" * identifier) + number_literal) )))) & number_literal) ))) )))) != (char_literal "'\x05'" ' escape_sequence ')) )) (goto_statement "goto LAB_0013bce0;" goto statement_identifier ;)) (expression_statement "piVar6 = (int *)0x0;" (assignment_expression "piVar6 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);" statement_identifier : (expression_statement "local_12c = (int *)((int)__s + iVar3 * 4);" (assignment_expression "local_12c = (int *)((int)__s + iVar3 * 4)" identifier = (cast_expression "(int *)((int)__s + iVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s + iVar3 * 4)" ( (binary_expression "(int)__s + iVar3 * 4" (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar3 * 4" identifier * number_literal)) )))) ;)) (if_statement "if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }" if (parenthesized_expression "((1 < param_2) && (piVar6 == (int *)0x0))" ( (binary_expression "(1 < param_2) && (piVar6 == (int *)0x0)" (parenthesized_expression "(1 < param_2)" ( (binary_expression "1 < param_2" number_literal < identifier) )) && (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }" { (expression_statement "local_124 = FUN_00045540();" (assignment_expression "local_124 = FUN_00045540()" identifier = (call_expression "FUN_00045540()" identifier (argument_list "()" ( )))) ;) (if_statement "if (!bVar23) goto LAB_0013b9c2;" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (goto_statement "goto LAB_0013b9c2;" goto statement_identifier ;)) (goto_statement "goto LAB_0013bd4a;" goto statement_identifier ;) })) }) (else_clause "else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }" else (compound_statement "{\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }" { (if_statement "if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;" if (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')" ( (binary_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" * (cast_expression "(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" ( (binary_expression "unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" identifier + number_literal) + (parenthesized_expression "(*(ushort *)(*param_3 + 8) & 0x1f)" ( (binary_expression "*(ushort *)(*param_3 + 8) & 0x1f" (pointer_expression "*(ushort *)(*param_3 + 8)" * (cast_expression "(ushort *)(*param_3 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_3 + 8)" ( (binary_expression "*param_3 + 8" (pointer_expression "*param_3" * identifier) + number_literal) )))) & number_literal) ))) )))) != (char_literal "'\x05'" ' escape_sequence ')) )) (goto_statement "goto LAB_0013bce0;" goto statement_identifier ;)) (expression_statement "local_12c = (int *)((int)__s + iVar3 * 4);" (assignment_expression "local_12c = (int *)((int)__s + iVar3 * 4)" identifier = (cast_expression "(int *)((int)__s + iVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s + iVar3 * 4)" ( (binary_expression "(int)__s + iVar3 * 4" (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar3 * 4" identifier * number_literal)) )))) ;) (expression_statement "local_124 = FUN_00045540();" (assignment_expression "local_124 = FUN_00045540()" identifier = (call_expression "FUN_00045540()" identifier (argument_list "()" ( )))) ;) (labeled_statement "LAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();" statement_identifier : (expression_statement "local_98 = (int *)FUN_0010b320();" (assignment_expression "local_98 = (int *)FUN_0010b320()" identifier = (cast_expression "(int *)FUN_0010b320()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010b320()" identifier (argument_list "()" ( ))))) ;)) (if_statement "if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(local_98 == (int *)0x13)" ( (binary_expression "local_98 == (int *)0x13" identifier == (cast_expression "(int *)0x13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }" { (expression_statement "piVar6 = local_98;" (assignment_expression "piVar6 = local_98" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x28) == 0)" ( (binary_expression "*(int *)(param_1 + 0x28) == 0" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }" { (expression_statement "local_98 = (int *)0x10b;" (assignment_expression "local_98 = (int *)0x10b" identifier = (cast_expression "(int *)0x10b" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar6 = local_98;" (assignment_expression "piVar6 = local_98" identifier = identifier) ;) })) }) (else_clause "else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }" else (compound_statement "{\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_0013bd4a:\n        piVar6 = local_98;" statement_identifier : (expression_statement "piVar6 = local_98;" (assignment_expression "piVar6 = local_98" identifier = identifier) ;)) (if_statement "if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }" if (parenthesized_expression "(local_98 == (int *)0x0)" ( (binary_expression "local_98 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }" { (expression_statement "uVar7 = *param_4;" (assignment_expression "uVar7 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "uVar28 = param_4[1];" (assignment_expression "uVar28 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = *(uint *)(param_1 + 0x110);" (assignment_expression "uVar10 = *(uint *)(param_1 + 0x110)" identifier = (pointer_expression "*(uint *)(param_1 + 0x110)" * (cast_expression "(uint *)(param_1 + 0x110)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) ;) (expression_statement "uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));" (assignment_expression "uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c))" identifier = (call_expression "(uint)(uVar7 < *(uint *)(param_1 + 0x10c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 < *(uint *)(param_1 + 0x10c))" ( (binary_expression "uVar7 < *(uint *)(param_1 + 0x10c)" identifier < (pointer_expression "*(uint *)(param_1 + 0x10c)" * (cast_expression "(uint *)(param_1 + 0x10c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) ))))) )))) ;) (if_statement "if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }" if (parenthesized_expression "((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0))" ( (binary_expression "(((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)" (parenthesized_expression "(((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104)))))" ( (binary_expression "((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))" (parenthesized_expression "((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0)" ( (binary_expression "(SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0" (parenthesized_expression "(SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20))" ( (binary_expression "SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)" (call_expression "SBORROW4(uVar28,uVar10)" identifier (argument_list "(uVar28,uVar10)" ( identifier , identifier ))) != (call_expression "SBORROW4(uVar28 - uVar10,uVar20)" identifier (argument_list "(uVar28 - uVar10,uVar20)" ( (binary_expression "uVar28 - uVar10" identifier - identifier) , identifier )))) )) == (binary_expression "(int)((uVar28 - uVar10) - uVar20) < 0" (cast_expression "(int)((uVar28 - uVar10) - uVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uVar28 - uVar10) - uVar20)" ( (binary_expression "(uVar28 - uVar10) - uVar20" (parenthesized_expression "(uVar28 - uVar10)" ( (binary_expression "uVar28 - uVar10" identifier - identifier) )) - identifier) ))) < number_literal)) )) && (parenthesized_expression "((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))" ( (parenthesized_expression "(((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104)))" ( (binary_expression "((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))" (parenthesized_expression "((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114)))" ( (binary_expression "(uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))" (parenthesized_expression "(uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0))" ( (binary_expression "uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)" (binary_expression "uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7" (binary_expression "uVar10 != uVar28" identifier != identifier) || (binary_expression "*(uint *)(param_1 + 0x10c) != uVar7" (pointer_expression "*(uint *)(param_1 + 0x10c)" * (cast_expression "(uint *)(param_1 + 0x10c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) )))) != identifier)) || (parenthesized_expression "(*(int *)(param_1 + 0x118) != 0)" ( (binary_expression "*(int *)(param_1 + 0x118) != 0" (pointer_expression "*(int *)(param_1 + 0x118)" * (cast_expression "(int *)(param_1 + 0x118)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(local_124 == *(int *)(param_1 + 0x114))" ( (binary_expression "local_124 == *(int *)(param_1 + 0x114)" identifier == (pointer_expression "*(int *)(param_1 + 0x114)" * (cast_expression "(int *)(param_1 + 0x114)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x114)" ( (binary_expression "param_1 + 0x114" identifier + number_literal) ))))) ))) )) && (parenthesized_expression "(*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))" ( (binary_expression "*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104)" (pointer_expression "*(int *)(param_1 + 0x108)" * (cast_expression "(int *)(param_1 + 0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) <= (pointer_expression "*(int *)(param_1 + 0x104)" * (cast_expression "(int *)(param_1 + 0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x104)" ( (binary_expression "param_1 + 0x104" identifier + number_literal) ))))) ))) )) ))) )) || (parenthesized_expression "(piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)" ( (comma_expression "piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0" (assignment_expression "piVar6 = (int *)FUN_0013aff0()" identifier = (cast_expression "(int *)FUN_0013aff0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013aff0()" identifier (argument_list "()" ( ))))) , (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }" { (expression_statement "*(int *)(param_1 + 0x114) = local_124;" (assignment_expression "*(int *)(param_1 + 0x114) = local_124" (pointer_expression "*(int *)(param_1 + 0x114)" * (cast_expression "(int *)(param_1 + 0x114)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x114)" ( (binary_expression "param_1 + 0x114" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(param_1 + 0x110) = uVar28;" (assignment_expression "*(uint *)(param_1 + 0x110) = uVar28" (pointer_expression "*(uint *)(param_1 + 0x110)" * (cast_expression "(uint *)(param_1 + 0x110)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(param_1 + 0x10c) = uVar7;" (assignment_expression "*(uint *)(param_1 + 0x10c) = uVar7" (pointer_expression "*(uint *)(param_1 + 0x10c)" * (cast_expression "(uint *)(param_1 + 0x10c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x118) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x118) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x118)" * (cast_expression "(undefined4 *)(param_1 + 0x118)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "piVar6 = local_98;" (assignment_expression "piVar6 = local_98" identifier = identifier) ;) (if_statement "if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }" if (parenthesized_expression "(0 < iVar3)" ( (binary_expression "0 < iVar3" number_literal < identifier) )) (compound_statement "{\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }" { (do_statement "do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);" do (compound_statement "{\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              }" { (if_statement "if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }" if (parenthesized_expression "(*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0')" ( (binary_expression "*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 0x20) + iVar4)" * (cast_expression "(char *)(*(int *)(param_1 + 0x20) + iVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x20) + iVar4)" ( (binary_expression "*(int *)(param_1 + 0x20) + iVar4" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }" { (expression_statement "FUN_0007f6d0();" (call_expression "FUN_0007f6d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));" (assignment_expression "piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4))" identifier = (cast_expression "(int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4))" identifier (argument_list "(iVar4,(void *)((int)local_12c + iVar4 * 4))" ( identifier , (cast_expression "(void *)((int)local_12c + iVar4 * 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_12c + iVar4 * 4)" ( (binary_expression "(int)local_12c + iVar4 * 4" (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar4 * 4" identifier * number_literal)) ))) ))))) ;) (if_statement "if (piVar6 != (int *)0x0) break;" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = FUN_0007f360();" (assignment_expression "iVar3 = FUN_0007f360()" identifier = (call_expression "FUN_0007f360()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);" (assignment_expression "piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4)" identifier = (cast_expression "(int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_12c + *(int *)(param_1 + 0x18) * 4)" ( (binary_expression "(int)local_12c + *(int *)(param_1 + 0x18) * 4" (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(param_1 + 0x18) * 4" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) * number_literal)) )))) ;) (expression_statement "*piVar6 = *piVar6 + iVar3;" (assignment_expression "*piVar6 = *piVar6 + iVar3" (pointer_expression "*piVar6" * identifier) = (binary_expression "*piVar6 + iVar3" (pointer_expression "*piVar6" * identifier) + identifier)) ;) (expression_statement "iVar3 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) })) (expression_statement "iVar18 = iVar4 + 2;" (assignment_expression "iVar18 = iVar4 + 2" identifier = (binary_expression "iVar4 + 2" identifier + number_literal)) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "piVar6 = local_98;" (assignment_expression "piVar6 = local_98" identifier = identifier) ;) }) while (parenthesized_expression "(iVar18 <= iVar3)" ( (binary_expression "iVar18 <= iVar3" identifier <= identifier) )) ;) })) })) })) }))) (expression_statement "local_98 = piVar6;" (assignment_expression "local_98 = piVar6" identifier = identifier) ;) (if_statement "if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }" if (parenthesized_expression "(*(char *)(param_1 + 0xea) != '\0')" ( (binary_expression "*(char *)(param_1 + 0xea) != '\0'" (pointer_expression "*(char *)(param_1 + 0xea)" * (cast_expression "(char *)(param_1 + 0xea)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xea)" ( (binary_expression "param_1 + 0xea" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        FUN_00111bd0();\n      }" { (expression_statement "FUN_00111bd0();" (call_expression "FUN_00111bd0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_94 = 1;" (assignment_expression "local_94 = 1" identifier = number_literal) ;) }))))) (if_statement "if (*(char *)(param_1 + 0xe8) != '\0') {\n      FUN_00111db0(__s,local_94);\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0xe8) != '\0')" ( (binary_expression "*(char *)(param_1 + 0xe8) != '\0'" (pointer_expression "*(char *)(param_1 + 0xe8)" * (cast_expression "(char *)(param_1 + 0xe8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe8)" ( (binary_expression "param_1 + 0xe8" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_00111db0(__s,local_94);\n    }" { (expression_statement "FUN_00111db0(__s,local_94);" (call_expression "FUN_00111db0(__s,local_94)" identifier (argument_list "(__s,local_94)" ( identifier , identifier ))) ;) })) }))) (labeled_statement "LAB_0013bb29:\n  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  }\n  else {\n    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }\n    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);\n    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n  }" statement_identifier : (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  }\n  else {\n    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }\n    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);\n    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n  }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) == 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" * (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7fb7a)" ( (binary_expression "unaff_EBP + 0x7fb7a" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(__s);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(__s)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(__s)" ( identifier ))) ;) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }\n    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);\n    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n  }" else (compound_statement "{\n    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }\n    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);\n    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n  }" { (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" * (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbd6)" ( (binary_expression "unaff_EBP + 0x7fbd6" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);" (assignment_expression "iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(__s)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" * (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbb2)" ( (binary_expression "unaff_EBP + 0x7fbb2" identifier + number_literal) ))))) )) (argument_list "(__s)" ( identifier )))) ;) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar3" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) - identifier)) ;) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(__s);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(__s)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(__s)" ( identifier ))) ;) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) == 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }" { (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }" else (compound_statement "{\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" * (cast_expression "(code **)(unaff_EBP + 0x7fbde)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbde)" ( (binary_expression "unaff_EBP + 0x7fbde" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) }))) })))) (goto_statement "goto LAB_0013ba95;" goto statement_identifier ;) (labeled_statement "LAB_0013d4fe:\n  FUN_000c0450(local_8c);" statement_identifier : (expression_statement "FUN_000c0450(local_8c);" (call_expression "FUN_000c0450(local_8c)" identifier (argument_list "(local_8c)" ( identifier ))) ;)) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (expression_statement "local_f0 = piVar6;" (assignment_expression "local_f0 = piVar6" identifier = identifier) ;) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) (labeled_statement "LAB_0013d234:\n  iVar4 = FUN_000e7e00(uVar5);" statement_identifier : (expression_statement "iVar4 = FUN_000e7e00(uVar5);" (assignment_expression "iVar4 = FUN_000e7e00(uVar5)" identifier = (call_expression "FUN_000e7e00(uVar5)" identifier (argument_list "(uVar5)" ( identifier )))) ;)) (if_statement "if (iVar4 == 100) {\n    FUN_0004c5d0();\n    uVar27 = FUN_00045540();\n    iVar18 = (int)((ulonglong)uVar27 >> 0x20);\n    uVar7 = (uint)uVar27;\n    FUN_0004c6c0();\n    iVar4 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x2c) == 0) {\n      uVar28 = 0;\n      iVar9 = 0;\n    }\n    else {\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }\n    uVar10 = uVar7 * 9 + uVar28;\n    iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28);\n    uVar7 = uVar10 * 9;\n    iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8);\n    uVar5 = local_8c;\n    if (0 < iVar4) {\n      local_114 = 0;\n      iVar9 = *(int *)(param_1 + 0x20);\n      do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);\n    }\n    goto LAB_0013d234;\n  }" if (parenthesized_expression "(iVar4 == 100)" ( (binary_expression "iVar4 == 100" identifier == number_literal) )) (compound_statement "{\n    FUN_0004c5d0();\n    uVar27 = FUN_00045540();\n    iVar18 = (int)((ulonglong)uVar27 >> 0x20);\n    uVar7 = (uint)uVar27;\n    FUN_0004c6c0();\n    iVar4 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x2c) == 0) {\n      uVar28 = 0;\n      iVar9 = 0;\n    }\n    else {\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }\n    uVar10 = uVar7 * 9 + uVar28;\n    iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28);\n    uVar7 = uVar10 * 9;\n    iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8);\n    uVar5 = local_8c;\n    if (0 < iVar4) {\n      local_114 = 0;\n      iVar9 = *(int *)(param_1 + 0x20);\n      do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);\n    }\n    goto LAB_0013d234;\n  }" { (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar27 = FUN_00045540();" (assignment_expression "uVar27 = FUN_00045540()" identifier = (call_expression "FUN_00045540()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar18 = (int)((ulonglong)uVar27 >> 0x20);" (assignment_expression "iVar18 = (int)((ulonglong)uVar27 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar27 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar27 >> 0x20)" ( (binary_expression "(ulonglong)uVar27 >> 0x20" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar7 = (uint)uVar27;" (assignment_expression "uVar7 = (uint)uVar27" identifier = (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar4 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x2c) == 0) {\n      uVar28 = 0;\n      iVar9 = 0;\n    }\n    else {\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x2c) == 0)" ( (binary_expression "*(int *)(param_1 + 0x2c) == 0" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      uVar28 = 0;\n      iVar9 = 0;\n    }" { (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }" else (compound_statement "{\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }" { (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar28 = FUN_00045540();" (assignment_expression "uVar28 = FUN_00045540()" identifier = (call_expression "FUN_00045540()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar9 = (int)uVar28 >> 0x1f;" (assignment_expression "iVar9 = (int)uVar28 >> 0x1f" identifier = (binary_expression "(int)uVar28 >> 0x1f" (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "iVar4 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar10 = uVar7 * 9 + uVar28;" (assignment_expression "uVar10 = uVar7 * 9 + uVar28" identifier = (binary_expression "uVar7 * 9 + uVar28" (binary_expression "uVar7 * 9" identifier * number_literal) + identifier)) ;) (expression_statement "iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28);" (assignment_expression "iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28)" identifier = (binary_expression "(iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28)" (binary_expression "(iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9" (binary_expression "(iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7)" (binary_expression "(iVar18 << 3 | uVar7 >> 0x1d) + iVar18" (parenthesized_expression "(iVar18 << 3 | uVar7 >> 0x1d)" ( (binary_expression "iVar18 << 3 | uVar7 >> 0x1d" (binary_expression "iVar18 << 3" identifier << number_literal) | (binary_expression "uVar7 >> 0x1d" identifier >> number_literal)) )) + identifier) + (cast_expression "(uint)CARRY4(uVar7 * 8,uVar7)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar7 * 8,uVar7)" identifier (argument_list "(uVar7 * 8,uVar7)" ( (binary_expression "uVar7 * 8" identifier * number_literal) , identifier ))))) + identifier) + (cast_expression "(uint)CARRY4(uVar7 * 9,uVar28)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar7 * 9,uVar28)" identifier (argument_list "(uVar7 * 9,uVar28)" ( (binary_expression "uVar7 * 9" identifier * number_literal) , identifier )))))) ;) (expression_statement "uVar7 = uVar10 * 9;" (assignment_expression "uVar7 = uVar10 * 9" identifier = (binary_expression "uVar10 * 9" identifier * number_literal)) ;) (expression_statement "iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8);" (assignment_expression "iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8)" identifier = (binary_expression "iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8)" (binary_expression "iVar18 + (iVar18 * 8 | uVar10 >> 0x1d)" identifier + (parenthesized_expression "(iVar18 * 8 | uVar10 >> 0x1d)" ( (binary_expression "iVar18 * 8 | uVar10 >> 0x1d" (binary_expression "iVar18 * 8" identifier * number_literal) | (binary_expression "uVar10 >> 0x1d" identifier >> number_literal)) ))) + (cast_expression "(uint)CARRY4(uVar10,uVar10 * 8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar10,uVar10 * 8)" identifier (argument_list "(uVar10,uVar10 * 8)" ( identifier , (binary_expression "uVar10 * 8" identifier * number_literal) )))))) ;) (expression_statement "uVar5 = local_8c;" (assignment_expression "uVar5 = local_8c" identifier = identifier) ;) (if_statement "if (0 < iVar4) {\n      local_114 = 0;\n      iVar9 = *(int *)(param_1 + 0x20);\n      do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);\n    }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n      local_114 = 0;\n      iVar9 = *(int *)(param_1 + 0x20);\n      do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);\n    }" { (expression_statement "local_114 = 0;" (assignment_expression "local_114 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (do_statement "do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);" do (compound_statement "{\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      }" { (expression_statement "local_10c = local_114 + 1;" (assignment_expression "local_10c = local_114 + 1" identifier = (binary_expression "local_114 + 1" identifier + number_literal)) ;) (if_statement "if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }" if (parenthesized_expression "(*(char *)(iVar9 + local_114) == '\0')" ( (binary_expression "*(char *)(iVar9 + local_114) == '\0'" (pointer_expression "*(char *)(iVar9 + local_114)" * (cast_expression "(char *)(iVar9 + local_114)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + local_114)" ( (binary_expression "iVar9 + local_114" identifier + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }" { (expression_statement "uVar28 = (uint)((ulonglong)uVar7 * 9);" (assignment_expression "uVar28 = (uint)((ulonglong)uVar7 * 9)" identifier = (call_expression "(uint)((ulonglong)uVar7 * 9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar7 * 9)" ( (binary_expression "(ulonglong)uVar7 * 9" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * number_literal) )))) ;) (expression_statement "local_dc = uVar28 + local_114;" (assignment_expression "local_dc = uVar28 + local_114" identifier = (binary_expression "uVar28 + local_114" identifier + identifier)) ;) (expression_statement "local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);" (assignment_expression "local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114)" identifier = (binary_expression "(int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114)" (binary_expression "(int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f)" (binary_expression "(int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9" (cast_expression "(int)((ulonglong)uVar7 * 9 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar7 * 9 >> 0x20)" ( (binary_expression "(ulonglong)uVar7 * 9 >> 0x20" (binary_expression "(ulonglong)uVar7 * 9" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * number_literal) >> number_literal) ))) + (binary_expression "iVar18 * 9" identifier * number_literal)) + (parenthesized_expression "((int)local_114 >> 0x1f)" ( (binary_expression "(int)local_114 >> 0x1f" (cast_expression "(int)local_114" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar28,local_114)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar28,local_114)" identifier (argument_list "(uVar28,local_114)" ( identifier , identifier )))))) ;) (expression_statement "local_e4 = local_114 + uVar10 * 0x51;" (assignment_expression "local_e4 = local_114 + uVar10 * 0x51" identifier = (binary_expression "local_114 + uVar10 * 0x51" identifier + (binary_expression "uVar10 * 0x51" identifier * number_literal))) ;) (expression_statement "local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);" (assignment_expression "local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51)" identifier = (binary_expression "((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51)" (binary_expression "((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7)" (binary_expression "((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18" (binary_expression "((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d)" (parenthesized_expression "((int)local_114 >> 0x1f)" ( (binary_expression "(int)local_114 >> 0x1f" (cast_expression "(int)local_114" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (parenthesized_expression "(iVar18 * 8 | uVar7 >> 0x1d)" ( (binary_expression "iVar18 * 8 | uVar7 >> 0x1d" (binary_expression "iVar18 * 8" identifier * number_literal) | (binary_expression "uVar7 >> 0x1d" identifier >> number_literal)) ))) + identifier) + (cast_expression "(uint)CARRY4(uVar10 * 0x48,uVar7)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar10 * 0x48,uVar7)" identifier (argument_list "(uVar10 * 0x48,uVar7)" ( (binary_expression "uVar10 * 0x48" identifier * number_literal) , identifier ))))) + (cast_expression "(uint)CARRY4(local_114,uVar10 * 0x51)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_114,uVar10 * 0x51)" identifier (argument_list "(local_114,uVar10 * 0x51)" ( identifier , (binary_expression "uVar10 * 0x51" identifier * number_literal) )))))) ;) (while_statement "while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }" { (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0007f6d0();" (call_expression "FUN_0007f6d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar5 = FUN_0007f360();" (assignment_expression "uVar5 = FUN_0007f360()" identifier = (call_expression "FUN_0007f360()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);" (assignment_expression "piVar6 = (int *)FUN_0003ed50(uVar5,&local_88)" identifier = (cast_expression "(int *)FUN_0003ed50(uVar5,&local_88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003ed50(uVar5,&local_88)" identifier (argument_list "(uVar5,&local_88)" ( identifier , (pointer_expression "&local_88" & identifier) ))))) ;) (if_statement "if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }" { (while_statement "while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }" { (expression_statement "local_7c[0] = 0;" (assignment_expression "local_7c[0] = 0" (subscript_expression "local_7c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_7c[2] = 0;" (assignment_expression "local_7c[2] = 0" (subscript_expression "local_7c[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_68 = (int *)0x0;" (assignment_expression "local_68 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_58 = (int *)0x0;" (assignment_expression "local_58 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);" (assignment_expression "piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58)" identifier = (cast_expression "(int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58)" (parenthesized_expression "(**(code **)(iVar3 + 0x14))" ( (pointer_expression "**(code **)(iVar3 + 0x14)" * (pointer_expression "*(code **)(iVar3 + 0x14)" * (cast_expression "(code **)(iVar3 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) ))))) )) (argument_list "(local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58)" ( identifier , (pointer_expression "&local_84" & identifier) , identifier , (binary_expression "local_7c + 2" identifier + number_literal) , (pointer_expression "&local_68" & identifier) , (pointer_expression "&local_58" & identifier) ))))) ;) (if_statement "if (piVar6 != (int *)0x0) break;" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;" (assignment_expression "puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8" identifier = (binary_expression "(undefined1 *)((int)local_58 + local_e4) + local_e4 * 8" (cast_expression "(undefined1 *)((int)local_58 + local_e4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_58 + local_e4)" ( (binary_expression "(int)local_58 + local_e4" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) + (binary_expression "local_e4 * 8" identifier * number_literal))) ;) (expression_statement "uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);" (assignment_expression "uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8)" identifier = (binary_expression "((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8)" (binary_expression "((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d)" (binary_expression "((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)" (binary_expression "((int)local_58 >> 0x1f) + local_e0" (parenthesized_expression "((int)local_58 >> 0x1f)" ( (binary_expression "(int)local_58 >> 0x1f" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + identifier) + (cast_expression "(uint)CARRY4((uint)local_58,local_e4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_58,local_e4)" identifier (argument_list "((uint)local_58,local_e4)" ( (cast_expression "(uint)local_58" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier ))))) + (parenthesized_expression "(local_e0 << 3 | local_e4 >> 0x1d)" ( (binary_expression "local_e0 << 3 | local_e4 >> 0x1d" (binary_expression "local_e0 << 3" identifier << number_literal) | (binary_expression "local_e4 >> 0x1d" identifier >> number_literal)) ))) + (cast_expression "(uint)CARRY4((int)local_58 + local_e4,local_e4 * 8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((int)local_58 + local_e4,local_e4 * 8)" identifier (argument_list "((int)local_58 + local_e4,local_e4 * 8)" ( (binary_expression "(int)local_58 + local_e4" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , (binary_expression "local_e4 * 8" identifier * number_literal) )))))) ;) (if_statement "if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }" if (parenthesized_expression "(0 < (int)local_7c[0])" ( (binary_expression "0 < (int)local_7c[0]" number_literal < (cast_expression "(int)local_7c[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_7c[0]" identifier [ number_literal ]))) )) (compound_statement "{\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }" { (expression_statement "pcVar15 = local_84;" (assignment_expression "pcVar15 = local_84" identifier = identifier) ;) (do_statement "do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);" do (compound_statement "{\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  }" { (expression_statement "uVar11 = (uint)*pcVar15;" (assignment_expression "uVar11 = (uint)*pcVar15" identifier = (binary_expression "(uint)*pcVar15" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "uVar12 = (int)puVar14 * 8;" (assignment_expression "uVar12 = (int)puVar14 * 8" identifier = (binary_expression "(int)puVar14 * 8" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "uVar20 = (uint)puVar14 >> 0x1d;" (assignment_expression "uVar20 = (uint)puVar14 >> 0x1d" identifier = (binary_expression "(uint)puVar14 >> 0x1d" (cast_expression "(uint)puVar14" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "uVar13 = uVar12 + uVar11;" (assignment_expression "uVar13 = uVar12 + uVar11" identifier = (binary_expression "uVar12 + uVar11" identifier + identifier)) ;) (expression_statement "bVar23 = CARRY4((uint)puVar14,uVar13);" (assignment_expression "bVar23 = CARRY4((uint)puVar14,uVar13)" identifier = (call_expression "CARRY4((uint)puVar14,uVar13)" identifier (argument_list "((uint)puVar14,uVar13)" ( (cast_expression "(uint)puVar14" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "puVar14 = puVar14 + uVar13;" (assignment_expression "puVar14 = puVar14 + uVar13" identifier = (binary_expression "puVar14 + uVar13" identifier + identifier)) ;) (expression_statement "uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;" (assignment_expression "uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23" identifier = (binary_expression "uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23" (binary_expression "uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11)" (binary_expression "uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f)" (binary_expression "uVar28 + (uVar28 << 3 | uVar20)" identifier + (parenthesized_expression "(uVar28 << 3 | uVar20)" ( (binary_expression "uVar28 << 3 | uVar20" (binary_expression "uVar28 << 3" identifier << number_literal) | identifier) ))) + (parenthesized_expression "((int)uVar11 >> 0x1f)" ( (binary_expression "(int)uVar11 >> 0x1f" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar12,uVar11)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar12,uVar11)" identifier (argument_list "(uVar12,uVar11)" ( identifier , identifier ))))) + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_84 + local_7c[0] != pcVar15)" ( (binary_expression "local_84 + local_7c[0] != pcVar15" (binary_expression "local_84 + local_7c[0]" identifier + (subscript_expression "local_7c[0]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "local_ec = local_ec ^ (uint)puVar14;" (assignment_expression "local_ec = local_ec ^ (uint)puVar14" identifier = (binary_expression "local_ec ^ (uint)puVar14" identifier ^ (cast_expression "(uint)puVar14" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_e8 = local_e8 ^ uVar28;" (assignment_expression "local_e8 = local_e8 ^ uVar28" identifier = (binary_expression "local_e8 ^ uVar28" identifier ^ identifier)) ;) (if_statement "if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }" if (parenthesized_expression "(1 < *(int *)(param_1 + 0xfc))" ( (binary_expression "1 < *(int *)(param_1 + 0xfc)" number_literal < (pointer_expression "*(int *)(param_1 + 0xfc)" * (cast_expression "(int *)(param_1 + 0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xfc)" ( (binary_expression "param_1 + 0xfc" identifier + number_literal) ))))) )) (compound_statement "{\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }" { (expression_statement "piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);" (assignment_expression "piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18)" identifier = (cast_expression "(int *)(*(int *)(param_1 + 0x100) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x100) + 0x18)" ( (binary_expression "*(int *)(param_1 + 0x100) + 0x18" (pointer_expression "*(int *)(param_1 + 0x100)" * (cast_expression "(int *)(param_1 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);" (assignment_expression "local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8)" identifier = (cast_expression "(int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined1 *)((int)local_58 + local_dc) + local_dc * 8)" ( (binary_expression "(undefined1 *)((int)local_58 + local_dc) + local_dc * 8" (cast_expression "(undefined1 *)((int)local_58 + local_dc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_58 + local_dc)" ( (binary_expression "(int)local_58 + local_dc" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) + (binary_expression "local_dc * 8" identifier * number_literal)) )))) ;) (expression_statement "local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);" (assignment_expression "local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8)" identifier = (binary_expression "((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8)" (binary_expression "((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d)" (binary_expression "((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc)" (binary_expression "((int)local_58 >> 0x1f) + local_d8" (parenthesized_expression "((int)local_58 >> 0x1f)" ( (binary_expression "(int)local_58 >> 0x1f" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + identifier) + (cast_expression "(uint)CARRY4((uint)local_58,local_dc)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_58,local_dc)" identifier (argument_list "((uint)local_58,local_dc)" ( (cast_expression "(uint)local_58" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier ))))) + (parenthesized_expression "(local_d8 << 3 | local_dc >> 0x1d)" ( (binary_expression "local_d8 << 3 | local_dc >> 0x1d" (binary_expression "local_d8 << 3" identifier << number_literal) | (binary_expression "local_dc >> 0x1d" identifier >> number_literal)) ))) + (cast_expression "(uint)CARRY4((int)local_58 + local_dc,local_dc * 8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((int)local_58 + local_dc,local_dc * 8)" identifier (argument_list "((int)local_58 + local_dc,local_dc * 8)" ( (binary_expression "(int)local_58 + local_dc" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , (binary_expression "local_dc * 8" identifier * number_literal) )))))) ;) (do_statement "do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);" do (compound_statement "{\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  }" { (expression_statement "iVar4 = *piVar6;" (assignment_expression "iVar4 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (if_statement "if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }" if (parenthesized_expression "(iVar4 <= (int)local_7c[0])" ( (binary_expression "iVar4 <= (int)local_7c[0]" identifier <= (cast_expression "(int)local_7c[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_7c[0]" identifier [ number_literal ]))) )) (compound_statement "{\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }" { (expression_statement "puVar14 = (undefined1 *)((int)local_12c + 0x51);" (assignment_expression "puVar14 = (undefined1 *)((int)local_12c + 0x51)" identifier = (cast_expression "(undefined1 *)((int)local_12c + 0x51)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_12c + 0x51)" ( (binary_expression "(int)local_12c + 0x51" (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);" (assignment_expression "uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c)" identifier = (binary_expression "local_128 + (uint)((undefined1 *)0xffffffae < local_12c)" identifier + (call_expression "(uint)((undefined1 *)0xffffffae < local_12c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((undefined1 *)0xffffffae < local_12c)" ( (binary_expression "(undefined1 *)0xffffffae < local_12c" (cast_expression "(undefined1 *)0xffffffae" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))))) ;) (if_statement "if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }" { (expression_statement "pcVar15 = local_84;" (assignment_expression "pcVar15 = local_84" identifier = identifier) ;) (do_statement "do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);" do (compound_statement "{\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        }" { (expression_statement "uVar13 = (uint)*pcVar15;" (assignment_expression "uVar13 = (uint)*pcVar15" identifier = (binary_expression "(uint)*pcVar15" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "uVar11 = (int)puVar14 * 8;" (assignment_expression "uVar11 = (int)puVar14 * 8" identifier = (binary_expression "(int)puVar14 * 8" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "uVar20 = (uint)puVar14 >> 0x1d;" (assignment_expression "uVar20 = (uint)puVar14 >> 0x1d" identifier = (binary_expression "(uint)puVar14 >> 0x1d" (cast_expression "(uint)puVar14" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "uVar12 = uVar11 + uVar13;" (assignment_expression "uVar12 = uVar11 + uVar13" identifier = (binary_expression "uVar11 + uVar13" identifier + identifier)) ;) (expression_statement "bVar23 = CARRY4((uint)puVar14,uVar12);" (assignment_expression "bVar23 = CARRY4((uint)puVar14,uVar12)" identifier = (call_expression "CARRY4((uint)puVar14,uVar12)" identifier (argument_list "((uint)puVar14,uVar12)" ( (cast_expression "(uint)puVar14" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "puVar14 = puVar14 + uVar12;" (assignment_expression "puVar14 = puVar14 + uVar12" identifier = (binary_expression "puVar14 + uVar12" identifier + identifier)) ;) (expression_statement "uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;" (assignment_expression "uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23" identifier = (binary_expression "uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23" (binary_expression "uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13)" (binary_expression "uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f)" (binary_expression "uVar28 + (uVar28 << 3 | uVar20)" identifier + (parenthesized_expression "(uVar28 << 3 | uVar20)" ( (binary_expression "uVar28 << 3 | uVar20" (binary_expression "uVar28 << 3" identifier << number_literal) | identifier) ))) + (parenthesized_expression "((int)uVar13 >> 0x1f)" ( (binary_expression "(int)uVar13 >> 0x1f" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar11,uVar13)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar11,uVar13)" identifier (argument_list "(uVar11,uVar13)" ( identifier , identifier ))))) + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_84 + iVar4 != pcVar15)" ( (binary_expression "local_84 + iVar4 != pcVar15" (binary_expression "local_84 + iVar4" identifier + identifier) != identifier) )) ;) })) (expression_statement "local_ec = local_ec ^ (uint)puVar14;" (assignment_expression "local_ec = local_ec ^ (uint)puVar14" identifier = (binary_expression "local_ec ^ (uint)puVar14" identifier ^ (cast_expression "(uint)puVar14" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_e8 = local_e8 ^ uVar28;" (assignment_expression "local_e8 = local_e8 ^ uVar28" identifier = (binary_expression "local_e8 ^ uVar28" identifier ^ identifier)) ;) })) (expression_statement "piVar6 = piVar6 + 6;" (assignment_expression "piVar6 = piVar6 + 6" identifier = (binary_expression "piVar6 + 6" identifier + number_literal)) ;) (expression_statement "bVar23 = (undefined1 *)0xffffffae < local_12c;" (assignment_expression "bVar23 = (undefined1 *)0xffffffae < local_12c" identifier = (binary_expression "(undefined1 *)0xffffffae < local_12c" (cast_expression "(undefined1 *)0xffffffae" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier)) ;) (expression_statement "local_12c = (int *)((int)local_12c + 0x51);" (assignment_expression "local_12c = (int *)((int)local_12c + 0x51)" identifier = (cast_expression "(int *)((int)local_12c + 0x51)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_12c + 0x51)" ( (binary_expression "(int)local_12c + 0x51" (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_128 = local_128 + (uint)bVar23;" (assignment_expression "local_128 = local_128 + (uint)bVar23" identifier = (binary_expression "local_128 + (uint)bVar23" identifier + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6)" ( (binary_expression "(int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6" (cast_expression "(int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18)" ( (binary_expression "*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18" (pointer_expression "*(int *)(param_1 + 0x100)" * (cast_expression "(int *)(param_1 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) + (binary_expression "*(int *)(param_1 + 0xfc) * 0x18" (pointer_expression "*(int *)(param_1 + 0xfc)" * (cast_expression "(int *)(param_1 + 0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xfc)" ( (binary_expression "param_1 + 0xfc" identifier + number_literal) )))) * number_literal)) ))) != identifier) )) ;) })) })) })) (if_statement "if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }" if (parenthesized_expression "(local_88 != 0)" ( (binary_expression "local_88 != 0" identifier != number_literal) )) (compound_statement "{\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }" { (expression_statement "(**(code **)(iVar3 + 0x10))(local_88);" (call_expression "(**(code **)(iVar3 + 0x10))(local_88)" (parenthesized_expression "(**(code **)(iVar3 + 0x10))" ( (pointer_expression "**(code **)(iVar3 + 0x10)" * (pointer_expression "*(code **)(iVar3 + 0x10)" * (cast_expression "(code **)(iVar3 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) ))))) )) (argument_list "(local_88)" ( identifier ))) ;) })) (if_statement "if (piVar6 != (int *)0x65) goto LAB_0013d4fe;" if (parenthesized_expression "(piVar6 != (int *)0x65)" ( (binary_expression "piVar6 != (int *)0x65" identifier != (cast_expression "(int *)0x65" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013d4fe;" goto statement_identifier ;)) (expression_statement "iVar4 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = local_8c;" (assignment_expression "uVar5 = local_8c" identifier = identifier) ;) (if_statement "if (iVar4 <= (int)local_10c) goto LAB_0013d234;" if (parenthesized_expression "(iVar4 <= (int)local_10c)" ( (binary_expression "iVar4 <= (int)local_10c" identifier <= (cast_expression "(int)local_10c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0013d234;" goto statement_identifier ;)) (expression_statement "bVar23 = 0xfffffffe < local_dc;" (assignment_expression "bVar23 = 0xfffffffe < local_dc" identifier = (binary_expression "0xfffffffe < local_dc" number_literal < identifier)) ;) (expression_statement "local_dc = local_dc + 1;" (assignment_expression "local_dc = local_dc + 1" identifier = (binary_expression "local_dc + 1" identifier + number_literal)) ;) (expression_statement "local_d8 = local_d8 + (uint)bVar23;" (assignment_expression "local_d8 = local_d8 + (uint)bVar23" identifier = (binary_expression "local_d8 + (uint)bVar23" identifier + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "iVar9 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar28 = local_10c;" (assignment_expression "uVar28 = local_10c" identifier = identifier) ;) (expression_statement "bVar23 = 0xfffffffe < local_e4;" (assignment_expression "bVar23 = 0xfffffffe < local_e4" identifier = (binary_expression "0xfffffffe < local_e4" number_literal < identifier)) ;) (expression_statement "local_e4 = local_e4 + 1;" (assignment_expression "local_e4 = local_e4 + 1" identifier = (binary_expression "local_e4 + 1" identifier + number_literal)) ;) (expression_statement "local_e0 = local_e0 + (uint)bVar23;" (assignment_expression "local_e0 = local_e0 + (uint)bVar23" identifier = (binary_expression "local_e0 + (uint)bVar23" identifier + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (*(char *)(iVar9 + local_10c) != '\0') break;" if (parenthesized_expression "(*(char *)(iVar9 + local_10c) != '\0')" ( (binary_expression "*(char *)(iVar9 + local_10c) != '\0'" (pointer_expression "*(char *)(iVar9 + local_10c)" * (cast_expression "(char *)(iVar9 + local_10c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + local_10c)" ( (binary_expression "iVar9 + local_10c" identifier + identifier) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "local_10c = local_10c + 1;" (assignment_expression "local_10c = local_10c + 1" identifier = (binary_expression "local_10c + 1" identifier + number_literal)) ;) (expression_statement "local_114 = uVar28;" (assignment_expression "local_114 = uVar28" identifier = identifier) ;) })) (expression_statement "local_10c = local_114 + 2;" (assignment_expression "local_10c = local_114 + 2" identifier = (binary_expression "local_114 + 2" identifier + number_literal)) ;) })) (expression_statement "local_114 = local_10c;" (assignment_expression "local_114 = local_10c" identifier = identifier) ;) }) while (parenthesized_expression "((int)local_114 < iVar4)" ( (binary_expression "(int)local_114 < iVar4" (cast_expression "(int)local_114" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) })) (goto_statement "goto LAB_0013d234;" goto statement_identifier ;) })) (expression_statement "FUN_000c0450(local_8c);" (call_expression "FUN_000c0450(local_8c)" identifier (argument_list "(local_8c)" ( identifier ))) ;) (if_statement "if (local_e8 == local_b4 && local_ec == local_d0) goto LAB_0013c0e0;" if (parenthesized_expression "(local_e8 == local_b4 && local_ec == local_d0)" ( (binary_expression "local_e8 == local_b4 && local_ec == local_d0" (binary_expression "local_e8 == local_b4" identifier == identifier) && (binary_expression "local_ec == local_d0" identifier == identifier)) )) (goto_statement "goto LAB_0013c0e0;" goto statement_identifier ;)) (expression_statement "local_f0 = (int *)0x10b;" (assignment_expression "local_f0 = (int *)0x10b" identifier = (cast_expression "(int *)0x10b" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0013ba71:\n  local_98 = local_f0;" statement_identifier : (expression_statement "local_98 = local_f0;" (assignment_expression "local_98 = local_f0" identifier = identifier) ;)) (labeled_statement "LAB_0013ba95:\n  FUN_000c0610(uVar5);" statement_identifier : (expression_statement "FUN_000c0610(uVar5);" (call_expression "FUN_000c0610(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;)) (expression_statement "*(undefined4 *)(param_1 + 0xf8) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xf8) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00153870();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00153870();\n  }" { comment (expression_statement "FUN_00153870();" (call_expression "FUN_00153870()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return local_98;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */\n/* WARNING: Unknown calling convention */\n\nint fts3UpdateMethod(sqlite3_vtab *pVtab,int nArg,sqlite3_value **apVal,sqlite_int64 *pRowid)\n\n{\n  sqlite3_stmt *psVar1;\n  ushort uVar2;\n  void *pvVar3;\n  longlong lVar4;\n  sqlite3_stmt *pStmt_00;\n  Op *pOVar5;\n  char cVar6;\n  sqlite3_int64 *piDocid;\n  sqlite3_value *psVar7;\n  int iVar8;\n  sqlite3_blob *pBlob;\n  char *pcVar9;\n  Mem *pMVar10;\n  uint uVar11;\n  Vdbe *pVVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  sqlite3_module *psVar18;\n  sqlite3_stmt *psVar19;\n  int iVar20;\n  char *pcVar21;\n  uint uVar22;\n  u8 in_DL;\n  u8 enc;\n  u8 enc_00;\n  u8 enc_01;\n  u8 enc_02;\n  u8 enc_03;\n  u8 enc_04;\n  void *p;\n  sqlite3 *psVar23;\n  int extraout_EDX;\n  int extraout_EDX_00;\n  int iVar24;\n  u8 *puVar25;\n  u8 *pBuf;\n  sqlite3_stmt *psVar26;\n  uint uVar27;\n  VdbeCursor **ppVVar28;\n  Fts3MultiSegReader *pFVar29;\n  int in_GS_OFFSET;\n  bool bVar30;\n  byte bVar31;\n  i64 iVar32;\n  i64 iVar33;\n  sqlite_int64 sVar34;\n  int *piVar35;\n  sqlite3_stmt *psVar36;\n  char *in_stack_fffffebc;\n  u32 *aSzDel;\n  Fts3MultiSegReader *in_stack_fffffec8;\n  u8 *puVar37;\n  sqlite3_module *psVar38;\n  sqlite3_stmt *local_12c;\n  int local_128;\n  sqlite3_module *local_124;\n  sqlite3_stmt *local_114;\n  int local_110;\n  uint local_10c;\n  sqlite3_stmt *local_108;\n  uint local_104;\n  uint local_100;\n  sqlite3_stmt *local_f0;\n  uint local_ec;\n  uint local_e8;\n  uint local_e4;\n  int local_e0;\n  uint local_dc;\n  int local_d8;\n  uint local_d0;\n  uint local_b4;\n  sqlite3 *local_b0;\n  int rc;\n  int nChng;\n  sqlite3_stmt *pAllLangid;\n  sqlite3_stmt *pStmt_3;\n  sqlite3_tokenizer_cursor *pT;\n  i64 iDocid;\n  i64 iCol;\n  i64 iVal;\n  int rc_2;\n  Fts3Table *local_64;\n  int local_60;\n  int local_5c;\n  sqlite3_stmt *pStmt;\n  Vdbe *local_54;\n  Parse *local_4c;\n  char *local_48;\n  VdbeCursor **local_30;\n  Mem *local_2c;\n  Op *local_28;\n  int local_24;\n  int local_20;\n  \n  bVar31 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  rc = 0;\n  nChng = 0;\n  if (1 < nArg) {\n    if ((aType_23891[(*apVal)->flags & 0x1f] == '\x05') &&\n       (psVar7 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 2)],\n       aType_23891[psVar7->flags & 0x1f] != '\x05')) {\n      pcVar9 = (char *)sqlite3ValueText(psVar7,in_DL);\n      iVar8 = sqlite3ValueBytes(psVar7,enc);\n      if (pcVar9 == (char *)0x0) {\n        local_f0 = (sqlite3_stmt *)0x7;\n        pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n        goto LAB_0013ba71;\n      }\n      if (iVar8 == 8) {\n        iVar8 = sqlite3_strnicmp(pcVar9,"optimize",8);\n        if (iVar8 == 0) {\n          local_f0 = (sqlite3_stmt *)fts3DoOptimize((Fts3Table *)pVtab,0);\n          pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n        if (iVar8 == 0) {\nLAB_0013be74:\n          cVar6 = pcVar9[6];\n          pcVar9 = pcVar9 + 6;\n          iVar8 = 0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar9 = pcVar9 + 1;\n              iVar8 = cVar6 + -0x30 + iVar8 * 10;\n              cVar6 = *pcVar9;\n              if (9 < (byte)(cVar6 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar8 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar6 == ',') {\n              cVar6 = pcVar9[1];\n              if ((cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)) {\n                iVar20 = 0;\n                do {\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                } while (iVar20 < 0xccccccb);\n                if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;\n              }\n            }\n            else if (cVar6 == '\0') {\n              iVar20 = 8;\nLAB_0013bf06:\n              pStmt = (sqlite3_stmt *)0x0;\n              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }\n              else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }\n              sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);\n              pVtab[0x14].zErrMsg = (char *)0x0;\n              pBlob = (sqlite3_blob *)0x0;\n              local_f0 = pStmt;\n              goto LAB_0013ba71;\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (sqlite3_stmt *)&DAT_00000001;\n        pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n        goto LAB_0013ba71;\n      }\n      if (iVar8 == 7) {\n        iVar8 = sqlite3_strnicmp(pcVar9,"rebuild",7);\n        if (iVar8 != 0) goto LAB_0013be5a;\n        local_f0 = (sqlite3_stmt *)fts3DeleteAll((Fts3Table *)pVtab,0);\n        rc_2 = (int)local_f0;\n        if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n        pStmt = (sqlite3_stmt *)0x0;\n        pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n        if (pcVar9 == (char *)0x0) goto LAB_0013d10b;\n        rc_2 = sqlite3LockAndPrepare\n                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt,\n                          (sqlite3_stmt **)0x0,(char **)pRowid);\n        sqlite3_free(pcVar9);\n        if (rc_2 == 0) {\n          psVar38 = pVtab[2].pModule;\n          iVar8 = sqlite3_initialize();\n          if (iVar8 != 0) {\nLAB_0013d10b:\n            rc_2 = 7;\n            goto LAB_0013d116;\n          }\n          local_114 = (sqlite3_stmt *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid));\n          if (local_114 == (sqlite3_stmt *)0x0) goto LAB_0013d10b;\n          psVar19 = local_114;\n          memset(local_114,0,(int)((int)&psVar38->iVersion + 1) * 0xc);\n          iVar8 = (int)pVtab[2].pModule * 4 + 4;\n          local_114 = local_114 + iVar8;\n          local_108 = local_114 + iVar8;\n          local_f0 = (sqlite3_stmt *)0x0;\n          while ((rc_2 == 0 && (iVar8 = sqlite3_step(pStmt), psVar26 = pStmt, iVar8 == 100))) {\n            psVar38 = (sqlite3_module *)0x0;\n            iVar8 = extraout_EDX;\n            if (pVtab[3].zErrMsg != (char *)0x0) {\n              pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n              iVar32 = sqlite3VdbeIntValue(pMVar10);\n              psVar38 = (sqlite3_module *)iVar32;\n              columnMallocFailure(psVar26);\n              iVar8 = extraout_EDX_00;\n            }\n            sVar34 = sqlite3_column_int64(pStmt,iVar8);\n            iVar20 = (int)((ulonglong)sVar34 >> 0x20);\n            lVar4._0_4_ = pVtab[0x16].nRef;\n            lVar4._4_4_ = pVtab[0x16].zErrMsg;\n            uVar11 = (uint)((uint)sVar34 < (uint)pVtab[0x16].nRef);\n            iVar8 = iVar20 - (int)pVtab[0x16].zErrMsg;\n            if (((((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0) &&\n                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 )) && ((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n               (rc_2 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), rc_2 == 0)) {\n              pVtab[0x16].nRef = (int)sVar34;\n              pVtab[0x16].zErrMsg = (char *)(int)((ulonglong)sVar34 >> 0x20);\n              pVtab[0x17].nRef = 0;\n              pVtab[0x17].pModule = psVar38;\n              rc_2 = 0;\n            }\n            memset(psVar19,0,(int)pVtab[2].pModule * 4 + 4);\n            if (rc_2 == 0) {\n              psVar18 = pVtab[2].pModule;\n              if (0 < (int)psVar18) {\n                psVar26 = (sqlite3_stmt *)0x0;\n                do {\n                  psVar36 = pStmt;\n                  psVar1 = psVar26 + 1;\n                  if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }\n                  psVar26 = psVar1;\n                } while ((int)psVar1 < (int)psVar18);\n              }\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (sqlite3_stmt *)((int)local_f0 + 1);\n              if (-1 < (int)psVar18) {\n                iVar8 = 0;\n                do {\n                  *(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);\n                  iVar8 = iVar8 + 1;\n                } while (iVar8 <= (int)pVtab[2].pModule);\n              }\n            }\n            else {\nLAB_0013d062:\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\nLAB_0013d0c3:\n                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);\n                if (rc_2 == 0) {\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }\n              }\n              sqlite3_finalize(pStmt);\n              pStmt = (sqlite3_stmt *)0x0;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (sqlite3_stmt *)0x0;\n          local_114 = (sqlite3_stmt *)0x0;\n          psVar19 = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)0x0;\n        }\n        if ((char)pVtab[0x13].nRef != '\0') {\n          fts3UpdateDocTotals(&rc_2,(Fts3Table *)pVtab,(u32 *)local_114,(u32 *)local_108,\n                              (int)local_f0);\n        }\n        sqlite3_free(psVar19);\n        if ((pStmt != (sqlite3_stmt *)0x0) && (iVar8 = sqlite3_finalize(pStmt), rc_2 == 0)) {\n          rc_2 = iVar8;\n        }\n        local_f0 = (sqlite3_stmt *)rc_2;\n      }\n      else {\n        if (iVar8 != 0xf) {\n          if (6 < iVar8) {\n            iVar20 = sqlite3_strnicmp(pcVar9,"merge=",6);\n            if (iVar20 == 0) goto LAB_0013be74;\n            if (10 < iVar8) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar8 = sqlite3_strnicmp(pcVar9,"integrity-check",0xf);\n        if (iVar8 == 0) {\n          pAllLangid = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x1b,&pAllLangid,(sqlite3_value **)pRowid);\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x17].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x15].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar8 = sqlite3_step(pAllLangid);\n                psVar19 = pAllLangid;\n                if (iVar8 != 100) {\n                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);\n                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n                  iVar8 = (pVtab[3].pModule)->iVersion;\n                  pStmt_3 = (sqlite3_stmt *)0x0;\n                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n                  if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  sqlite3_finalize(pStmt_3);\n                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n                  local_f0 = (sqlite3_stmt *)0x7;\n                  goto LAB_0013ba71;\n                }\n                pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n                iVar32 = sqlite3VdbeIntValue(pMVar10);\n                uVar11 = (uint)iVar32;\n                iVar8 = 0x13c3a3;\n                columnMallocFailure(psVar19);\n              } while ((int)pVtab[0x15].pModule < 1);\n              local_114 = (sqlite3_stmt *)0x0;\n              local_110 = 0;\n              do {\n                rc_2 = 0;\n                local_64 = (Fts3Table *)0x0;\n                local_60 = 0;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                for (iVar20 = 0xe; iVar20 != 0; iVar20 = iVar20 + -1) {\n                  pFVar29->apSegment = (Fts3SegReader **)0x0;\n                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);\n                }\n                local_5c = 0x13;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                local_12c = (sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt);\n                if ((local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  iVar8 = 0x13c8ad;\n                  local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);\n                  pOVar5 = local_28;\n                  if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                psVar19 = pStmt;\n                if (0 < (int)local_54) {\n                  iVar20 = 0;\n                  pVVar12 = local_54;\n                  do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);\n                }\nLAB_0013c5e2:\n                if (psVar19 != (sqlite3_stmt *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                pcVar9 = local_48;\n                if (local_48 != (char *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                bVar30 = 0xfffffffe < local_114;\n                local_114 = (sqlite3_stmt *)((int)local_114 + 1);\n                local_110 = local_110 + (uint)bVar30;\n              } while ((int)local_114 < (int)pVtab[0x15].pModule);\n            } while (local_12c == (sqlite3_stmt *)0x0);\n            sqlite3_reset(pAllLangid);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n          if (iVar8 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar8 = sqlite3_strnicmp(pcVar9,"automerge=",10);\n          if (iVar8 != 0) goto LAB_0013ba5f;\n          rc_2 = 0;\n          pcVar21 = pcVar9 + 10;\n          pStmt = (sqlite3_stmt *)0x0;\n          cVar6 = pcVar9[10];\n          psVar38 = (sqlite3_module *)0x0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar21 = pcVar21 + 1;\n              psVar38 = (sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10);\n              cVar6 = *pcVar21;\n              if (9 < (byte)(cVar6 - 0x30U)) break;\n            } while ((int)psVar38 < 0xccccccb);\n            if ((psVar38 == (sqlite3_module *)0x1) || (0x10 < (int)psVar38)) {\n              pVtab[4].pModule = (sqlite3_module *)0x8;\n            }\n            else {\n              pVtab[4].pModule = psVar38;\n            }\n          }\n          else {\n            pVtab[4].pModule = (sqlite3_module *)0x0;\n          }\n          if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n            fts3DbExec(&rc_2,(sqlite3 *)pVtab[1].pModule,\n                       "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                       ,pVtab[1].nRef,pVtab[1].zErrMsg);\n            local_f0 = (sqlite3_stmt *)rc_2;\n            if (rc_2 != 0) goto LAB_0013c0e0;\n            *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n          }\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x17,&pStmt,(sqlite3_value **)pRowid);\n          rc_2 = (int)local_f0;\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pStmt,2,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pStmt,(int)pVtab[4].pModule,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_step(pStmt);\n            local_f0 = (sqlite3_stmt *)sqlite3_reset(pStmt);\n          }\n        }\n      }\nLAB_0013c0e0:\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n      goto LAB_0013ba71;\n    }\n    pMVar10 = apVal[(int)&(pVtab[2].pModule)->xCreate];\n    uVar2 = pMVar10->flags;\n    if ((uVar2 & 4) == 0) {\n      if ((uVar2 & 8) == 0) {\n        if ((uVar2 & 0x12) == 0) goto LAB_0013b900;\n        iVar32 = memIntValue(pMVar10);\n        iVar8 = (int)iVar32;\n      }\n      else {\n        iVar32 = doubleToInt64((pMVar10->u).r);\n        iVar8 = (int)iVar32;\n      }\n    }\n    else {\n      iVar8 = (pMVar10->u).nZero;\n    }\n    if (iVar8 < 0) {\n      rc = 0x13;\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n      goto LAB_0013ba95;\n    }\n  }\nLAB_0013b900:\n  piDocid = (sqlite3_int64 *)sqlite3_initialize();\n  if ((piDocid != (sqlite3_int64 *)0x0) ||\n     (psVar7 = (sqlite3_value *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid)),\n     psVar7 == (sqlite3_value *)0x0)) {\n    rc = 7;\n    pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    goto LAB_0013ba95;\n  }\n  psVar38 = pVtab[2].pModule;\n  aSzDel = (u32 *)((int)((int)&psVar38->iVersion + 1) * 8);\n  piVar35 = (int *)0x0;\n  memset(psVar7,0,(size_t)aSzDel);\n  if (pVtab[0x16].pModule == (sqlite3_module *)0x0) {\n    iVar8 = fts3SqlStmt((Fts3Table *)pVtab,0x10,&pStmt,(sqlite3_value **)pRowid);\n    psVar19 = pStmt;\n    if (iVar8 == 0) {\n      iVar8 = vdbeUnbind((Vdbe *)pStmt,1);\n      if ((iVar8 == 0) && (*(sqlite3_mutex **)(*(int *)psVar19 + 0xc) != (sqlite3_mutex *)0x0)) {\n        (*sqlite3Config.mutex.xMutexLeave)(*(sqlite3_mutex **)(*(int *)psVar19 + 0xc));\n      }\n      sqlite3_step(pStmt);\n      rc = sqlite3_reset(pStmt);\n      iVar8 = rc;\n      if (rc == 0) {\n        if (1 < nArg) {\n          if (pVtab[3].nRef == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }\n  }\n  else {\n    rc = 0;\n    if (nArg < 2) {\nLAB_0013baf0:\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') {\nLAB_0013bce0:\n        iVar8 = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n        rc = iVar8;\n        goto LAB_0013bcfe;\n      }\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n    }\n    else if (pVtab[3].nRef == 0) {\nLAB_0013bc30:\n      pMVar10 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 3)];\n      if ((aType_23891[pMVar10->flags & 0x1f] == '\x05') &&\n         (pMVar10 = apVal[1], aType_23891[pMVar10->flags & 0x1f] == '\x05')) {\nLAB_0013c280:\n        piDocid = (sqlite3_int64 *)0x0;\n      }\n      else {\n        if (aType_23891[(*apVal)->flags & 0x1f] == '\x05') {\nLAB_0013bc87:\n          if (sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==\n              '\x05') {\n            rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n            piDocid = (sqlite3_int64 *)0x0;\n          }\n          else {\n            rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n            piDocid = (sqlite3_int64 *)&DAT_00000001;\n          }\n        }\n        else {\n          iVar32 = sqlite3VdbeIntValue(*apVal);\n          piDocid = (sqlite3_int64 *)iVar32;\n          iVar33 = sqlite3VdbeIntValue(pMVar10);\n          if (iVar33 != CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid)) goto LAB_0013bc87;\n          piDocid = (sqlite3_int64 *)0x0;\n        }\n        iVar8 = rc;\n        if (rc != 0) goto LAB_0013bb29;\n      }\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      iVar8 = 0;\nLAB_0013bcfe:\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      if ((1 < nArg) && (iVar8 == 0)) {\n        iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n        local_124 = (sqlite3_module *)iVar32;\n        if (piDocid == (sqlite3_int64 *)0x0) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n      local_124 = (sqlite3_module *)iVar32;\nLAB_0013b9c2:\n      rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n      if (rc == 0x13) {\n        iVar8 = rc;\n        if (pVtab[3].nRef == 0) {\n          rc = 0x10b;\n          iVar8 = rc;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        iVar8 = rc;\n        if (rc == 0) {\n          psVar38 = (((Fts3Table *)pRowid)->base).pModule;\n          pcVar9 = (char *)(((Fts3Table *)pRowid)->base).nRef;\n          pcVar21 = pVtab[0x16].zErrMsg;\n          uVar11 = (uint)(psVar38 < (sqlite3_module *)pVtab[0x16].nRef);\n          if (((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n             (iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0)) {\n            rc = 0;\n            pVtab[0x17].pModule = local_124;\n            psVar18 = pVtab[2].pModule;\n            pVtab[0x16].zErrMsg = pcVar9;\n            pVtab[0x16].nRef = (int)psVar38;\n            pVtab[0x17].nRef = 0;\n            iVar13 = 0;\n            iVar8 = iVar20;\n            if (0 < (int)psVar18) {\n              do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);\n            }\n          }\n        }\n      }\n      rc = iVar8;\n      if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\n        fts3InsertDocsize(&rc,(Fts3Table *)pVtab,(u32 *)local_12c);\n      }\n      nChng = nChng + 1;\n    }\n    iVar8 = rc;\n    if ((char)pVtab[0x13].nRef != '\0') {\n      fts3UpdateDocTotals(&rc,(Fts3Table *)pVtab,(u32 *)local_12c,(u32 *)psVar7,nChng);\n      iVar8 = rc;\n    }\n  }\nLAB_0013bb29:\n  rc = iVar8;\n  if (sqlite3Config.bMemstat == 0) {\n    (*sqlite3Config.m.xFree)(psVar7);\n    pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n  }\n  else {\n    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n    }\n    iVar8 = (*sqlite3Config.m.xSize)(psVar7);\n    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar8;\n    (*sqlite3Config.m.xFree)(psVar7);\n    if (mem0.mutex == (sqlite3_mutex *)0x0) {\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    }\n    else {\n      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    }\n  }\n  goto LAB_0013ba95;\nLAB_0013d4fe:\n  sqlite3_finalize(pStmt_3);\n  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n  local_f0 = psVar19;\n  goto LAB_0013ba71;\nLAB_0013d234:\n  iVar20 = sqlite3_step(psVar26);\n  psVar19 = pStmt_3;\n  if (iVar20 == 100) {\n    pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n    iVar32 = sqlite3VdbeIntValue(pMVar10);\n    columnMallocFailure(psVar19);\n    psVar19 = pStmt_3;\n    psVar38 = pVtab[2].pModule;\n    if (pVtab[3].zErrMsg == (char *)0x0) {\n      local_b0 = (sqlite3 *)0x0;\n      in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n    }\n    else {\n      pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n      iVar33 = sqlite3VdbeIntValue(pMVar10);\n      local_b0 = (sqlite3 *)iVar33;\n      columnMallocFailure(psVar19);\n      in_stack_fffffec8 = (Fts3MultiSegReader *)((int)local_b0 >> 0x1f);\n      psVar38 = pVtab[2].pModule;\n    }\n    lVar4 = iVar32 * 9 + CONCAT44(in_stack_fffffec8,local_b0);\n    uVar14 = (uint)lVar4;\n    iVar20 = (int)((ulonglong)lVar4 >> 0x20);\n    uVar11 = uVar14 * 9;\n    iVar20 = iVar20 + (iVar20 * 8 | uVar14 >> 0x1d) + (uint)CARRY4(uVar14,uVar14 * 8);\n    psVar26 = pStmt_3;\n    pRowid = (sqlite_int64 *)local_b0;\n    if (0 < (int)psVar38) {\n      local_114 = (sqlite3_stmt *)0x0;\n      pcVar9 = pVtab[2].zErrMsg;\n      do {\n        local_10c = (int)local_114 + 1;\n        if (pcVar9[(int)local_114] == '\0') {\n          uVar27 = (uint)((ulonglong)uVar11 * 9);\n          local_dc = uVar27 + (int)local_114;\n          local_d8 = (int)((ulonglong)uVar11 * 9 >> 0x20) + iVar20 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar27,(uint)local_114);\n          local_e4 = (int)local_114 + uVar14 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar20 * 8 | uVar11 >> 0x1d) + iVar20 + (uint)CARRY4(uVar14 * 0x48,uVar11) +\n                     (uint)CARRY4((uint)local_114,uVar14 * 0x51);\n          while( true ) {\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_03);\n            columnMallocFailure(psVar26);\n            psVar19 = pStmt_3;\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            iVar13 = sqlite3ValueBytes(pMVar10,enc_04);\n            columnMallocFailure(psVar19);\n            pT = (sqlite3_tokenizer_cursor *)0x0;\n            psVar19 = (sqlite3_stmt *)\n                      sqlite3Fts3OpenTokenizer\n                                ((sqlite3_tokenizer *)pVtab[3].pModule,(int)local_b0,pcVar9,iVar13,\n                                 &pT);\n            if (psVar19 == (sqlite3_stmt *)0x0) {\n              while( true ) {\n                iCol._0_4_ = 0;\n                iVal._0_4_ = 0;\n                rc_2 = 0;\n                pStmt = (sqlite3_stmt *)0x0;\n                psVar19 = (sqlite3_stmt *)\n                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt);\n                if (psVar19 != (sqlite3_stmt *)0x0) break;\n                psVar19 = pStmt + local_e4 + local_e4 * 8;\n                uVar27 = ((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8);\n                if (0 < (int)(uint)iCol) {\n                  pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));\n                  psVar23 = (sqlite3 *)iDocid;\n                  do {\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  } while ((sqlite3 *)pRowid != psVar23);\n                }\n                local_ec = local_ec ^ (uint)psVar19;\n                local_e8 = local_e8 ^ uVar27;\n                if (1 < (int)pVtab[0x15].pModule) {\n                  pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);\n                  local_12c = pStmt + local_dc + local_dc * 8;\n                  local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);\n                  do {\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid);\n                }\n              }\n            }\n            if (pT != (sqlite3_tokenizer_cursor *)0x0) {\n              (**(code **)(iVar8 + 0x10))(pT);\n            }\n            if (psVar19 != (sqlite3_stmt *)0x65) goto LAB_0013d4fe;\n            psVar38 = pVtab[2].pModule;\n            psVar26 = pStmt_3;\n            if ((int)psVar38 <= (int)local_10c) goto LAB_0013d234;\n            bVar30 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar30;\n            pcVar9 = pVtab[2].zErrMsg;\n            uVar27 = local_10c;\n            bVar30 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar30;\n            if (pcVar9[local_10c] != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = (sqlite3_stmt *)uVar27;\n          }\n          local_10c = (int)local_114 + 2;\n        }\n        local_114 = (sqlite3_stmt *)local_10c;\n      } while ((int)local_114 < (int)psVar38);\n    }\n    goto LAB_0013d234;\n  }\n  sqlite3_finalize(pStmt_3);\n  if (local_e8 == local_b4 && local_ec == local_d0) goto LAB_0013c0e0;\n  local_f0 = (sqlite3_stmt *)0x10b;\n  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\nLAB_0013ba71:\n  rc = (int)local_f0;\nLAB_0013ba95:\n  sqlite3_blob_close(pBlob);\n  pVtab[0x14].zErrMsg = (char *)0x0;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return rc;\n}\n\n" comment comment (function_definition "int fts3UpdateMethod(sqlite3_vtab *pVtab,int nArg,sqlite3_value **apVal,sqlite_int64 *pRowid)\n\n{\n  sqlite3_stmt *psVar1;\n  ushort uVar2;\n  void *pvVar3;\n  longlong lVar4;\n  sqlite3_stmt *pStmt_00;\n  Op *pOVar5;\n  char cVar6;\n  sqlite3_int64 *piDocid;\n  sqlite3_value *psVar7;\n  int iVar8;\n  sqlite3_blob *pBlob;\n  char *pcVar9;\n  Mem *pMVar10;\n  uint uVar11;\n  Vdbe *pVVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  sqlite3_module *psVar18;\n  sqlite3_stmt *psVar19;\n  int iVar20;\n  char *pcVar21;\n  uint uVar22;\n  u8 in_DL;\n  u8 enc;\n  u8 enc_00;\n  u8 enc_01;\n  u8 enc_02;\n  u8 enc_03;\n  u8 enc_04;\n  void *p;\n  sqlite3 *psVar23;\n  int extraout_EDX;\n  int extraout_EDX_00;\n  int iVar24;\n  u8 *puVar25;\n  u8 *pBuf;\n  sqlite3_stmt *psVar26;\n  uint uVar27;\n  VdbeCursor **ppVVar28;\n  Fts3MultiSegReader *pFVar29;\n  int in_GS_OFFSET;\n  bool bVar30;\n  byte bVar31;\n  i64 iVar32;\n  i64 iVar33;\n  sqlite_int64 sVar34;\n  int *piVar35;\n  sqlite3_stmt *psVar36;\n  char *in_stack_fffffebc;\n  u32 *aSzDel;\n  Fts3MultiSegReader *in_stack_fffffec8;\n  u8 *puVar37;\n  sqlite3_module *psVar38;\n  sqlite3_stmt *local_12c;\n  int local_128;\n  sqlite3_module *local_124;\n  sqlite3_stmt *local_114;\n  int local_110;\n  uint local_10c;\n  sqlite3_stmt *local_108;\n  uint local_104;\n  uint local_100;\n  sqlite3_stmt *local_f0;\n  uint local_ec;\n  uint local_e8;\n  uint local_e4;\n  int local_e0;\n  uint local_dc;\n  int local_d8;\n  uint local_d0;\n  uint local_b4;\n  sqlite3 *local_b0;\n  int rc;\n  int nChng;\n  sqlite3_stmt *pAllLangid;\n  sqlite3_stmt *pStmt_3;\n  sqlite3_tokenizer_cursor *pT;\n  i64 iDocid;\n  i64 iCol;\n  i64 iVal;\n  int rc_2;\n  Fts3Table *local_64;\n  int local_60;\n  int local_5c;\n  sqlite3_stmt *pStmt;\n  Vdbe *local_54;\n  Parse *local_4c;\n  char *local_48;\n  VdbeCursor **local_30;\n  Mem *local_2c;\n  Op *local_28;\n  int local_24;\n  int local_20;\n  \n  bVar31 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  rc = 0;\n  nChng = 0;\n  if (1 < nArg) {\n    if ((aType_23891[(*apVal)->flags & 0x1f] == '\x05') &&\n       (psVar7 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 2)],\n       aType_23891[psVar7->flags & 0x1f] != '\x05')) {\n      pcVar9 = (char *)sqlite3ValueText(psVar7,in_DL);\n      iVar8 = sqlite3ValueBytes(psVar7,enc);\n      if (pcVar9 == (char *)0x0) {\n        local_f0 = (sqlite3_stmt *)0x7;\n        pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n        goto LAB_0013ba71;\n      }\n      if (iVar8 == 8) {\n        iVar8 = sqlite3_strnicmp(pcVar9,"optimize",8);\n        if (iVar8 == 0) {\n          local_f0 = (sqlite3_stmt *)fts3DoOptimize((Fts3Table *)pVtab,0);\n          pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n        if (iVar8 == 0) {\nLAB_0013be74:\n          cVar6 = pcVar9[6];\n          pcVar9 = pcVar9 + 6;\n          iVar8 = 0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar9 = pcVar9 + 1;\n              iVar8 = cVar6 + -0x30 + iVar8 * 10;\n              cVar6 = *pcVar9;\n              if (9 < (byte)(cVar6 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar8 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar6 == ',') {\n              cVar6 = pcVar9[1];\n              if ((cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)) {\n                iVar20 = 0;\n                do {\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                } while (iVar20 < 0xccccccb);\n                if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;\n              }\n            }\n            else if (cVar6 == '\0') {\n              iVar20 = 8;\nLAB_0013bf06:\n              pStmt = (sqlite3_stmt *)0x0;\n              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }\n              else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }\n              sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);\n              pVtab[0x14].zErrMsg = (char *)0x0;\n              pBlob = (sqlite3_blob *)0x0;\n              local_f0 = pStmt;\n              goto LAB_0013ba71;\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (sqlite3_stmt *)&DAT_00000001;\n        pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n        goto LAB_0013ba71;\n      }\n      if (iVar8 == 7) {\n        iVar8 = sqlite3_strnicmp(pcVar9,"rebuild",7);\n        if (iVar8 != 0) goto LAB_0013be5a;\n        local_f0 = (sqlite3_stmt *)fts3DeleteAll((Fts3Table *)pVtab,0);\n        rc_2 = (int)local_f0;\n        if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n        pStmt = (sqlite3_stmt *)0x0;\n        pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n        if (pcVar9 == (char *)0x0) goto LAB_0013d10b;\n        rc_2 = sqlite3LockAndPrepare\n                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt,\n                          (sqlite3_stmt **)0x0,(char **)pRowid);\n        sqlite3_free(pcVar9);\n        if (rc_2 == 0) {\n          psVar38 = pVtab[2].pModule;\n          iVar8 = sqlite3_initialize();\n          if (iVar8 != 0) {\nLAB_0013d10b:\n            rc_2 = 7;\n            goto LAB_0013d116;\n          }\n          local_114 = (sqlite3_stmt *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid));\n          if (local_114 == (sqlite3_stmt *)0x0) goto LAB_0013d10b;\n          psVar19 = local_114;\n          memset(local_114,0,(int)((int)&psVar38->iVersion + 1) * 0xc);\n          iVar8 = (int)pVtab[2].pModule * 4 + 4;\n          local_114 = local_114 + iVar8;\n          local_108 = local_114 + iVar8;\n          local_f0 = (sqlite3_stmt *)0x0;\n          while ((rc_2 == 0 && (iVar8 = sqlite3_step(pStmt), psVar26 = pStmt, iVar8 == 100))) {\n            psVar38 = (sqlite3_module *)0x0;\n            iVar8 = extraout_EDX;\n            if (pVtab[3].zErrMsg != (char *)0x0) {\n              pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n              iVar32 = sqlite3VdbeIntValue(pMVar10);\n              psVar38 = (sqlite3_module *)iVar32;\n              columnMallocFailure(psVar26);\n              iVar8 = extraout_EDX_00;\n            }\n            sVar34 = sqlite3_column_int64(pStmt,iVar8);\n            iVar20 = (int)((ulonglong)sVar34 >> 0x20);\n            lVar4._0_4_ = pVtab[0x16].nRef;\n            lVar4._4_4_ = pVtab[0x16].zErrMsg;\n            uVar11 = (uint)((uint)sVar34 < (uint)pVtab[0x16].nRef);\n            iVar8 = iVar20 - (int)pVtab[0x16].zErrMsg;\n            if (((((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0) &&\n                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 )) && ((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n               (rc_2 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), rc_2 == 0)) {\n              pVtab[0x16].nRef = (int)sVar34;\n              pVtab[0x16].zErrMsg = (char *)(int)((ulonglong)sVar34 >> 0x20);\n              pVtab[0x17].nRef = 0;\n              pVtab[0x17].pModule = psVar38;\n              rc_2 = 0;\n            }\n            memset(psVar19,0,(int)pVtab[2].pModule * 4 + 4);\n            if (rc_2 == 0) {\n              psVar18 = pVtab[2].pModule;\n              if (0 < (int)psVar18) {\n                psVar26 = (sqlite3_stmt *)0x0;\n                do {\n                  psVar36 = pStmt;\n                  psVar1 = psVar26 + 1;\n                  if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }\n                  psVar26 = psVar1;\n                } while ((int)psVar1 < (int)psVar18);\n              }\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (sqlite3_stmt *)((int)local_f0 + 1);\n              if (-1 < (int)psVar18) {\n                iVar8 = 0;\n                do {\n                  *(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);\n                  iVar8 = iVar8 + 1;\n                } while (iVar8 <= (int)pVtab[2].pModule);\n              }\n            }\n            else {\nLAB_0013d062:\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\nLAB_0013d0c3:\n                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);\n                if (rc_2 == 0) {\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }\n              }\n              sqlite3_finalize(pStmt);\n              pStmt = (sqlite3_stmt *)0x0;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (sqlite3_stmt *)0x0;\n          local_114 = (sqlite3_stmt *)0x0;\n          psVar19 = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)0x0;\n        }\n        if ((char)pVtab[0x13].nRef != '\0') {\n          fts3UpdateDocTotals(&rc_2,(Fts3Table *)pVtab,(u32 *)local_114,(u32 *)local_108,\n                              (int)local_f0);\n        }\n        sqlite3_free(psVar19);\n        if ((pStmt != (sqlite3_stmt *)0x0) && (iVar8 = sqlite3_finalize(pStmt), rc_2 == 0)) {\n          rc_2 = iVar8;\n        }\n        local_f0 = (sqlite3_stmt *)rc_2;\n      }\n      else {\n        if (iVar8 != 0xf) {\n          if (6 < iVar8) {\n            iVar20 = sqlite3_strnicmp(pcVar9,"merge=",6);\n            if (iVar20 == 0) goto LAB_0013be74;\n            if (10 < iVar8) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar8 = sqlite3_strnicmp(pcVar9,"integrity-check",0xf);\n        if (iVar8 == 0) {\n          pAllLangid = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x1b,&pAllLangid,(sqlite3_value **)pRowid);\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x17].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x15].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar8 = sqlite3_step(pAllLangid);\n                psVar19 = pAllLangid;\n                if (iVar8 != 100) {\n                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);\n                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n                  iVar8 = (pVtab[3].pModule)->iVersion;\n                  pStmt_3 = (sqlite3_stmt *)0x0;\n                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n                  if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  sqlite3_finalize(pStmt_3);\n                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n                  local_f0 = (sqlite3_stmt *)0x7;\n                  goto LAB_0013ba71;\n                }\n                pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n                iVar32 = sqlite3VdbeIntValue(pMVar10);\n                uVar11 = (uint)iVar32;\n                iVar8 = 0x13c3a3;\n                columnMallocFailure(psVar19);\n              } while ((int)pVtab[0x15].pModule < 1);\n              local_114 = (sqlite3_stmt *)0x0;\n              local_110 = 0;\n              do {\n                rc_2 = 0;\n                local_64 = (Fts3Table *)0x0;\n                local_60 = 0;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                for (iVar20 = 0xe; iVar20 != 0; iVar20 = iVar20 + -1) {\n                  pFVar29->apSegment = (Fts3SegReader **)0x0;\n                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);\n                }\n                local_5c = 0x13;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                local_12c = (sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt);\n                if ((local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  iVar8 = 0x13c8ad;\n                  local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);\n                  pOVar5 = local_28;\n                  if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                psVar19 = pStmt;\n                if (0 < (int)local_54) {\n                  iVar20 = 0;\n                  pVVar12 = local_54;\n                  do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);\n                }\nLAB_0013c5e2:\n                if (psVar19 != (sqlite3_stmt *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                pcVar9 = local_48;\n                if (local_48 != (char *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                bVar30 = 0xfffffffe < local_114;\n                local_114 = (sqlite3_stmt *)((int)local_114 + 1);\n                local_110 = local_110 + (uint)bVar30;\n              } while ((int)local_114 < (int)pVtab[0x15].pModule);\n            } while (local_12c == (sqlite3_stmt *)0x0);\n            sqlite3_reset(pAllLangid);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n          if (iVar8 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar8 = sqlite3_strnicmp(pcVar9,"automerge=",10);\n          if (iVar8 != 0) goto LAB_0013ba5f;\n          rc_2 = 0;\n          pcVar21 = pcVar9 + 10;\n          pStmt = (sqlite3_stmt *)0x0;\n          cVar6 = pcVar9[10];\n          psVar38 = (sqlite3_module *)0x0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar21 = pcVar21 + 1;\n              psVar38 = (sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10);\n              cVar6 = *pcVar21;\n              if (9 < (byte)(cVar6 - 0x30U)) break;\n            } while ((int)psVar38 < 0xccccccb);\n            if ((psVar38 == (sqlite3_module *)0x1) || (0x10 < (int)psVar38)) {\n              pVtab[4].pModule = (sqlite3_module *)0x8;\n            }\n            else {\n              pVtab[4].pModule = psVar38;\n            }\n          }\n          else {\n            pVtab[4].pModule = (sqlite3_module *)0x0;\n          }\n          if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n            fts3DbExec(&rc_2,(sqlite3 *)pVtab[1].pModule,\n                       "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                       ,pVtab[1].nRef,pVtab[1].zErrMsg);\n            local_f0 = (sqlite3_stmt *)rc_2;\n            if (rc_2 != 0) goto LAB_0013c0e0;\n            *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n          }\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x17,&pStmt,(sqlite3_value **)pRowid);\n          rc_2 = (int)local_f0;\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pStmt,2,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pStmt,(int)pVtab[4].pModule,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_step(pStmt);\n            local_f0 = (sqlite3_stmt *)sqlite3_reset(pStmt);\n          }\n        }\n      }\nLAB_0013c0e0:\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n      goto LAB_0013ba71;\n    }\n    pMVar10 = apVal[(int)&(pVtab[2].pModule)->xCreate];\n    uVar2 = pMVar10->flags;\n    if ((uVar2 & 4) == 0) {\n      if ((uVar2 & 8) == 0) {\n        if ((uVar2 & 0x12) == 0) goto LAB_0013b900;\n        iVar32 = memIntValue(pMVar10);\n        iVar8 = (int)iVar32;\n      }\n      else {\n        iVar32 = doubleToInt64((pMVar10->u).r);\n        iVar8 = (int)iVar32;\n      }\n    }\n    else {\n      iVar8 = (pMVar10->u).nZero;\n    }\n    if (iVar8 < 0) {\n      rc = 0x13;\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n      goto LAB_0013ba95;\n    }\n  }\nLAB_0013b900:\n  piDocid = (sqlite3_int64 *)sqlite3_initialize();\n  if ((piDocid != (sqlite3_int64 *)0x0) ||\n     (psVar7 = (sqlite3_value *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid)),\n     psVar7 == (sqlite3_value *)0x0)) {\n    rc = 7;\n    pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    goto LAB_0013ba95;\n  }\n  psVar38 = pVtab[2].pModule;\n  aSzDel = (u32 *)((int)((int)&psVar38->iVersion + 1) * 8);\n  piVar35 = (int *)0x0;\n  memset(psVar7,0,(size_t)aSzDel);\n  if (pVtab[0x16].pModule == (sqlite3_module *)0x0) {\n    iVar8 = fts3SqlStmt((Fts3Table *)pVtab,0x10,&pStmt,(sqlite3_value **)pRowid);\n    psVar19 = pStmt;\n    if (iVar8 == 0) {\n      iVar8 = vdbeUnbind((Vdbe *)pStmt,1);\n      if ((iVar8 == 0) && (*(sqlite3_mutex **)(*(int *)psVar19 + 0xc) != (sqlite3_mutex *)0x0)) {\n        (*sqlite3Config.mutex.xMutexLeave)(*(sqlite3_mutex **)(*(int *)psVar19 + 0xc));\n      }\n      sqlite3_step(pStmt);\n      rc = sqlite3_reset(pStmt);\n      iVar8 = rc;\n      if (rc == 0) {\n        if (1 < nArg) {\n          if (pVtab[3].nRef == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }\n  }\n  else {\n    rc = 0;\n    if (nArg < 2) {\nLAB_0013baf0:\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') {\nLAB_0013bce0:\n        iVar8 = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n        rc = iVar8;\n        goto LAB_0013bcfe;\n      }\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n    }\n    else if (pVtab[3].nRef == 0) {\nLAB_0013bc30:\n      pMVar10 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 3)];\n      if ((aType_23891[pMVar10->flags & 0x1f] == '\x05') &&\n         (pMVar10 = apVal[1], aType_23891[pMVar10->flags & 0x1f] == '\x05')) {\nLAB_0013c280:\n        piDocid = (sqlite3_int64 *)0x0;\n      }\n      else {\n        if (aType_23891[(*apVal)->flags & 0x1f] == '\x05') {\nLAB_0013bc87:\n          if (sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==\n              '\x05') {\n            rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n            piDocid = (sqlite3_int64 *)0x0;\n          }\n          else {\n            rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n            piDocid = (sqlite3_int64 *)&DAT_00000001;\n          }\n        }\n        else {\n          iVar32 = sqlite3VdbeIntValue(*apVal);\n          piDocid = (sqlite3_int64 *)iVar32;\n          iVar33 = sqlite3VdbeIntValue(pMVar10);\n          if (iVar33 != CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid)) goto LAB_0013bc87;\n          piDocid = (sqlite3_int64 *)0x0;\n        }\n        iVar8 = rc;\n        if (rc != 0) goto LAB_0013bb29;\n      }\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      iVar8 = 0;\nLAB_0013bcfe:\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      if ((1 < nArg) && (iVar8 == 0)) {\n        iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n        local_124 = (sqlite3_module *)iVar32;\n        if (piDocid == (sqlite3_int64 *)0x0) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n      local_124 = (sqlite3_module *)iVar32;\nLAB_0013b9c2:\n      rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n      if (rc == 0x13) {\n        iVar8 = rc;\n        if (pVtab[3].nRef == 0) {\n          rc = 0x10b;\n          iVar8 = rc;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        iVar8 = rc;\n        if (rc == 0) {\n          psVar38 = (((Fts3Table *)pRowid)->base).pModule;\n          pcVar9 = (char *)(((Fts3Table *)pRowid)->base).nRef;\n          pcVar21 = pVtab[0x16].zErrMsg;\n          uVar11 = (uint)(psVar38 < (sqlite3_module *)pVtab[0x16].nRef);\n          if (((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n             (iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0)) {\n            rc = 0;\n            pVtab[0x17].pModule = local_124;\n            psVar18 = pVtab[2].pModule;\n            pVtab[0x16].zErrMsg = pcVar9;\n            pVtab[0x16].nRef = (int)psVar38;\n            pVtab[0x17].nRef = 0;\n            iVar13 = 0;\n            iVar8 = iVar20;\n            if (0 < (int)psVar18) {\n              do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);\n            }\n          }\n        }\n      }\n      rc = iVar8;\n      if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\n        fts3InsertDocsize(&rc,(Fts3Table *)pVtab,(u32 *)local_12c);\n      }\n      nChng = nChng + 1;\n    }\n    iVar8 = rc;\n    if ((char)pVtab[0x13].nRef != '\0') {\n      fts3UpdateDocTotals(&rc,(Fts3Table *)pVtab,(u32 *)local_12c,(u32 *)psVar7,nChng);\n      iVar8 = rc;\n    }\n  }\nLAB_0013bb29:\n  rc = iVar8;\n  if (sqlite3Config.bMemstat == 0) {\n    (*sqlite3Config.m.xFree)(psVar7);\n    pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n  }\n  else {\n    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n    }\n    iVar8 = (*sqlite3Config.m.xSize)(psVar7);\n    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar8;\n    (*sqlite3Config.m.xFree)(psVar7);\n    if (mem0.mutex == (sqlite3_mutex *)0x0) {\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    }\n    else {\n      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    }\n  }\n  goto LAB_0013ba95;\nLAB_0013d4fe:\n  sqlite3_finalize(pStmt_3);\n  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n  local_f0 = psVar19;\n  goto LAB_0013ba71;\nLAB_0013d234:\n  iVar20 = sqlite3_step(psVar26);\n  psVar19 = pStmt_3;\n  if (iVar20 == 100) {\n    pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n    iVar32 = sqlite3VdbeIntValue(pMVar10);\n    columnMallocFailure(psVar19);\n    psVar19 = pStmt_3;\n    psVar38 = pVtab[2].pModule;\n    if (pVtab[3].zErrMsg == (char *)0x0) {\n      local_b0 = (sqlite3 *)0x0;\n      in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n    }\n    else {\n      pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n      iVar33 = sqlite3VdbeIntValue(pMVar10);\n      local_b0 = (sqlite3 *)iVar33;\n      columnMallocFailure(psVar19);\n      in_stack_fffffec8 = (Fts3MultiSegReader *)((int)local_b0 >> 0x1f);\n      psVar38 = pVtab[2].pModule;\n    }\n    lVar4 = iVar32 * 9 + CONCAT44(in_stack_fffffec8,local_b0);\n    uVar14 = (uint)lVar4;\n    iVar20 = (int)((ulonglong)lVar4 >> 0x20);\n    uVar11 = uVar14 * 9;\n    iVar20 = iVar20 + (iVar20 * 8 | uVar14 >> 0x1d) + (uint)CARRY4(uVar14,uVar14 * 8);\n    psVar26 = pStmt_3;\n    pRowid = (sqlite_int64 *)local_b0;\n    if (0 < (int)psVar38) {\n      local_114 = (sqlite3_stmt *)0x0;\n      pcVar9 = pVtab[2].zErrMsg;\n      do {\n        local_10c = (int)local_114 + 1;\n        if (pcVar9[(int)local_114] == '\0') {\n          uVar27 = (uint)((ulonglong)uVar11 * 9);\n          local_dc = uVar27 + (int)local_114;\n          local_d8 = (int)((ulonglong)uVar11 * 9 >> 0x20) + iVar20 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar27,(uint)local_114);\n          local_e4 = (int)local_114 + uVar14 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar20 * 8 | uVar11 >> 0x1d) + iVar20 + (uint)CARRY4(uVar14 * 0x48,uVar11) +\n                     (uint)CARRY4((uint)local_114,uVar14 * 0x51);\n          while( true ) {\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_03);\n            columnMallocFailure(psVar26);\n            psVar19 = pStmt_3;\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            iVar13 = sqlite3ValueBytes(pMVar10,enc_04);\n            columnMallocFailure(psVar19);\n            pT = (sqlite3_tokenizer_cursor *)0x0;\n            psVar19 = (sqlite3_stmt *)\n                      sqlite3Fts3OpenTokenizer\n                                ((sqlite3_tokenizer *)pVtab[3].pModule,(int)local_b0,pcVar9,iVar13,\n                                 &pT);\n            if (psVar19 == (sqlite3_stmt *)0x0) {\n              while( true ) {\n                iCol._0_4_ = 0;\n                iVal._0_4_ = 0;\n                rc_2 = 0;\n                pStmt = (sqlite3_stmt *)0x0;\n                psVar19 = (sqlite3_stmt *)\n                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt);\n                if (psVar19 != (sqlite3_stmt *)0x0) break;\n                psVar19 = pStmt + local_e4 + local_e4 * 8;\n                uVar27 = ((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8);\n                if (0 < (int)(uint)iCol) {\n                  pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));\n                  psVar23 = (sqlite3 *)iDocid;\n                  do {\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  } while ((sqlite3 *)pRowid != psVar23);\n                }\n                local_ec = local_ec ^ (uint)psVar19;\n                local_e8 = local_e8 ^ uVar27;\n                if (1 < (int)pVtab[0x15].pModule) {\n                  pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);\n                  local_12c = pStmt + local_dc + local_dc * 8;\n                  local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);\n                  do {\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid);\n                }\n              }\n            }\n            if (pT != (sqlite3_tokenizer_cursor *)0x0) {\n              (**(code **)(iVar8 + 0x10))(pT);\n            }\n            if (psVar19 != (sqlite3_stmt *)0x65) goto LAB_0013d4fe;\n            psVar38 = pVtab[2].pModule;\n            psVar26 = pStmt_3;\n            if ((int)psVar38 <= (int)local_10c) goto LAB_0013d234;\n            bVar30 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar30;\n            pcVar9 = pVtab[2].zErrMsg;\n            uVar27 = local_10c;\n            bVar30 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar30;\n            if (pcVar9[local_10c] != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = (sqlite3_stmt *)uVar27;\n          }\n          local_10c = (int)local_114 + 2;\n        }\n        local_114 = (sqlite3_stmt *)local_10c;\n      } while ((int)local_114 < (int)psVar38);\n    }\n    goto LAB_0013d234;\n  }\n  sqlite3_finalize(pStmt_3);\n  if (local_e8 == local_b4 && local_ec == local_d0) goto LAB_0013c0e0;\n  local_f0 = (sqlite3_stmt *)0x10b;\n  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\nLAB_0013ba71:\n  rc = (int)local_f0;\nLAB_0013ba95:\n  sqlite3_blob_close(pBlob);\n  pVtab[0x14].zErrMsg = (char *)0x0;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return rc;\n}" primitive_type (function_declarator "fts3UpdateMethod(sqlite3_vtab *pVtab,int nArg,sqlite3_value **apVal,sqlite_int64 *pRowid)" identifier (parameter_list "(sqlite3_vtab *pVtab,int nArg,sqlite3_value **apVal,sqlite_int64 *pRowid)" ( (parameter_declaration "sqlite3_vtab *pVtab" type_identifier (pointer_declarator "*pVtab" * identifier)) , (parameter_declaration "int nArg" primitive_type identifier) , (parameter_declaration "sqlite3_value **apVal" type_identifier (pointer_declarator "**apVal" * (pointer_declarator "*apVal" * identifier))) , (parameter_declaration "sqlite_int64 *pRowid" type_identifier (pointer_declarator "*pRowid" * identifier)) ))) (compound_statement "{\n  sqlite3_stmt *psVar1;\n  ushort uVar2;\n  void *pvVar3;\n  longlong lVar4;\n  sqlite3_stmt *pStmt_00;\n  Op *pOVar5;\n  char cVar6;\n  sqlite3_int64 *piDocid;\n  sqlite3_value *psVar7;\n  int iVar8;\n  sqlite3_blob *pBlob;\n  char *pcVar9;\n  Mem *pMVar10;\n  uint uVar11;\n  Vdbe *pVVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  sqlite3_module *psVar18;\n  sqlite3_stmt *psVar19;\n  int iVar20;\n  char *pcVar21;\n  uint uVar22;\n  u8 in_DL;\n  u8 enc;\n  u8 enc_00;\n  u8 enc_01;\n  u8 enc_02;\n  u8 enc_03;\n  u8 enc_04;\n  void *p;\n  sqlite3 *psVar23;\n  int extraout_EDX;\n  int extraout_EDX_00;\n  int iVar24;\n  u8 *puVar25;\n  u8 *pBuf;\n  sqlite3_stmt *psVar26;\n  uint uVar27;\n  VdbeCursor **ppVVar28;\n  Fts3MultiSegReader *pFVar29;\n  int in_GS_OFFSET;\n  bool bVar30;\n  byte bVar31;\n  i64 iVar32;\n  i64 iVar33;\n  sqlite_int64 sVar34;\n  int *piVar35;\n  sqlite3_stmt *psVar36;\n  char *in_stack_fffffebc;\n  u32 *aSzDel;\n  Fts3MultiSegReader *in_stack_fffffec8;\n  u8 *puVar37;\n  sqlite3_module *psVar38;\n  sqlite3_stmt *local_12c;\n  int local_128;\n  sqlite3_module *local_124;\n  sqlite3_stmt *local_114;\n  int local_110;\n  uint local_10c;\n  sqlite3_stmt *local_108;\n  uint local_104;\n  uint local_100;\n  sqlite3_stmt *local_f0;\n  uint local_ec;\n  uint local_e8;\n  uint local_e4;\n  int local_e0;\n  uint local_dc;\n  int local_d8;\n  uint local_d0;\n  uint local_b4;\n  sqlite3 *local_b0;\n  int rc;\n  int nChng;\n  sqlite3_stmt *pAllLangid;\n  sqlite3_stmt *pStmt_3;\n  sqlite3_tokenizer_cursor *pT;\n  i64 iDocid;\n  i64 iCol;\n  i64 iVal;\n  int rc_2;\n  Fts3Table *local_64;\n  int local_60;\n  int local_5c;\n  sqlite3_stmt *pStmt;\n  Vdbe *local_54;\n  Parse *local_4c;\n  char *local_48;\n  VdbeCursor **local_30;\n  Mem *local_2c;\n  Op *local_28;\n  int local_24;\n  int local_20;\n  \n  bVar31 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  rc = 0;\n  nChng = 0;\n  if (1 < nArg) {\n    if ((aType_23891[(*apVal)->flags & 0x1f] == '\x05') &&\n       (psVar7 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 2)],\n       aType_23891[psVar7->flags & 0x1f] != '\x05')) {\n      pcVar9 = (char *)sqlite3ValueText(psVar7,in_DL);\n      iVar8 = sqlite3ValueBytes(psVar7,enc);\n      if (pcVar9 == (char *)0x0) {\n        local_f0 = (sqlite3_stmt *)0x7;\n        pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n        goto LAB_0013ba71;\n      }\n      if (iVar8 == 8) {\n        iVar8 = sqlite3_strnicmp(pcVar9,"optimize",8);\n        if (iVar8 == 0) {\n          local_f0 = (sqlite3_stmt *)fts3DoOptimize((Fts3Table *)pVtab,0);\n          pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n        if (iVar8 == 0) {\nLAB_0013be74:\n          cVar6 = pcVar9[6];\n          pcVar9 = pcVar9 + 6;\n          iVar8 = 0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar9 = pcVar9 + 1;\n              iVar8 = cVar6 + -0x30 + iVar8 * 10;\n              cVar6 = *pcVar9;\n              if (9 < (byte)(cVar6 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar8 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar6 == ',') {\n              cVar6 = pcVar9[1];\n              if ((cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)) {\n                iVar20 = 0;\n                do {\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                } while (iVar20 < 0xccccccb);\n                if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;\n              }\n            }\n            else if (cVar6 == '\0') {\n              iVar20 = 8;\nLAB_0013bf06:\n              pStmt = (sqlite3_stmt *)0x0;\n              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }\n              else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }\n              sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);\n              pVtab[0x14].zErrMsg = (char *)0x0;\n              pBlob = (sqlite3_blob *)0x0;\n              local_f0 = pStmt;\n              goto LAB_0013ba71;\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (sqlite3_stmt *)&DAT_00000001;\n        pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n        goto LAB_0013ba71;\n      }\n      if (iVar8 == 7) {\n        iVar8 = sqlite3_strnicmp(pcVar9,"rebuild",7);\n        if (iVar8 != 0) goto LAB_0013be5a;\n        local_f0 = (sqlite3_stmt *)fts3DeleteAll((Fts3Table *)pVtab,0);\n        rc_2 = (int)local_f0;\n        if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n        pStmt = (sqlite3_stmt *)0x0;\n        pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n        if (pcVar9 == (char *)0x0) goto LAB_0013d10b;\n        rc_2 = sqlite3LockAndPrepare\n                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt,\n                          (sqlite3_stmt **)0x0,(char **)pRowid);\n        sqlite3_free(pcVar9);\n        if (rc_2 == 0) {\n          psVar38 = pVtab[2].pModule;\n          iVar8 = sqlite3_initialize();\n          if (iVar8 != 0) {\nLAB_0013d10b:\n            rc_2 = 7;\n            goto LAB_0013d116;\n          }\n          local_114 = (sqlite3_stmt *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid));\n          if (local_114 == (sqlite3_stmt *)0x0) goto LAB_0013d10b;\n          psVar19 = local_114;\n          memset(local_114,0,(int)((int)&psVar38->iVersion + 1) * 0xc);\n          iVar8 = (int)pVtab[2].pModule * 4 + 4;\n          local_114 = local_114 + iVar8;\n          local_108 = local_114 + iVar8;\n          local_f0 = (sqlite3_stmt *)0x0;\n          while ((rc_2 == 0 && (iVar8 = sqlite3_step(pStmt), psVar26 = pStmt, iVar8 == 100))) {\n            psVar38 = (sqlite3_module *)0x0;\n            iVar8 = extraout_EDX;\n            if (pVtab[3].zErrMsg != (char *)0x0) {\n              pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n              iVar32 = sqlite3VdbeIntValue(pMVar10);\n              psVar38 = (sqlite3_module *)iVar32;\n              columnMallocFailure(psVar26);\n              iVar8 = extraout_EDX_00;\n            }\n            sVar34 = sqlite3_column_int64(pStmt,iVar8);\n            iVar20 = (int)((ulonglong)sVar34 >> 0x20);\n            lVar4._0_4_ = pVtab[0x16].nRef;\n            lVar4._4_4_ = pVtab[0x16].zErrMsg;\n            uVar11 = (uint)((uint)sVar34 < (uint)pVtab[0x16].nRef);\n            iVar8 = iVar20 - (int)pVtab[0x16].zErrMsg;\n            if (((((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0) &&\n                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 )) && ((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n               (rc_2 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), rc_2 == 0)) {\n              pVtab[0x16].nRef = (int)sVar34;\n              pVtab[0x16].zErrMsg = (char *)(int)((ulonglong)sVar34 >> 0x20);\n              pVtab[0x17].nRef = 0;\n              pVtab[0x17].pModule = psVar38;\n              rc_2 = 0;\n            }\n            memset(psVar19,0,(int)pVtab[2].pModule * 4 + 4);\n            if (rc_2 == 0) {\n              psVar18 = pVtab[2].pModule;\n              if (0 < (int)psVar18) {\n                psVar26 = (sqlite3_stmt *)0x0;\n                do {\n                  psVar36 = pStmt;\n                  psVar1 = psVar26 + 1;\n                  if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }\n                  psVar26 = psVar1;\n                } while ((int)psVar1 < (int)psVar18);\n              }\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (sqlite3_stmt *)((int)local_f0 + 1);\n              if (-1 < (int)psVar18) {\n                iVar8 = 0;\n                do {\n                  *(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);\n                  iVar8 = iVar8 + 1;\n                } while (iVar8 <= (int)pVtab[2].pModule);\n              }\n            }\n            else {\nLAB_0013d062:\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\nLAB_0013d0c3:\n                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);\n                if (rc_2 == 0) {\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }\n              }\n              sqlite3_finalize(pStmt);\n              pStmt = (sqlite3_stmt *)0x0;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (sqlite3_stmt *)0x0;\n          local_114 = (sqlite3_stmt *)0x0;\n          psVar19 = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)0x0;\n        }\n        if ((char)pVtab[0x13].nRef != '\0') {\n          fts3UpdateDocTotals(&rc_2,(Fts3Table *)pVtab,(u32 *)local_114,(u32 *)local_108,\n                              (int)local_f0);\n        }\n        sqlite3_free(psVar19);\n        if ((pStmt != (sqlite3_stmt *)0x0) && (iVar8 = sqlite3_finalize(pStmt), rc_2 == 0)) {\n          rc_2 = iVar8;\n        }\n        local_f0 = (sqlite3_stmt *)rc_2;\n      }\n      else {\n        if (iVar8 != 0xf) {\n          if (6 < iVar8) {\n            iVar20 = sqlite3_strnicmp(pcVar9,"merge=",6);\n            if (iVar20 == 0) goto LAB_0013be74;\n            if (10 < iVar8) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar8 = sqlite3_strnicmp(pcVar9,"integrity-check",0xf);\n        if (iVar8 == 0) {\n          pAllLangid = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x1b,&pAllLangid,(sqlite3_value **)pRowid);\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x17].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x15].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar8 = sqlite3_step(pAllLangid);\n                psVar19 = pAllLangid;\n                if (iVar8 != 100) {\n                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);\n                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n                  iVar8 = (pVtab[3].pModule)->iVersion;\n                  pStmt_3 = (sqlite3_stmt *)0x0;\n                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n                  if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  sqlite3_finalize(pStmt_3);\n                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n                  local_f0 = (sqlite3_stmt *)0x7;\n                  goto LAB_0013ba71;\n                }\n                pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n                iVar32 = sqlite3VdbeIntValue(pMVar10);\n                uVar11 = (uint)iVar32;\n                iVar8 = 0x13c3a3;\n                columnMallocFailure(psVar19);\n              } while ((int)pVtab[0x15].pModule < 1);\n              local_114 = (sqlite3_stmt *)0x0;\n              local_110 = 0;\n              do {\n                rc_2 = 0;\n                local_64 = (Fts3Table *)0x0;\n                local_60 = 0;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                for (iVar20 = 0xe; iVar20 != 0; iVar20 = iVar20 + -1) {\n                  pFVar29->apSegment = (Fts3SegReader **)0x0;\n                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);\n                }\n                local_5c = 0x13;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                local_12c = (sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt);\n                if ((local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  iVar8 = 0x13c8ad;\n                  local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);\n                  pOVar5 = local_28;\n                  if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                psVar19 = pStmt;\n                if (0 < (int)local_54) {\n                  iVar20 = 0;\n                  pVVar12 = local_54;\n                  do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);\n                }\nLAB_0013c5e2:\n                if (psVar19 != (sqlite3_stmt *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                pcVar9 = local_48;\n                if (local_48 != (char *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                bVar30 = 0xfffffffe < local_114;\n                local_114 = (sqlite3_stmt *)((int)local_114 + 1);\n                local_110 = local_110 + (uint)bVar30;\n              } while ((int)local_114 < (int)pVtab[0x15].pModule);\n            } while (local_12c == (sqlite3_stmt *)0x0);\n            sqlite3_reset(pAllLangid);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n          if (iVar8 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar8 = sqlite3_strnicmp(pcVar9,"automerge=",10);\n          if (iVar8 != 0) goto LAB_0013ba5f;\n          rc_2 = 0;\n          pcVar21 = pcVar9 + 10;\n          pStmt = (sqlite3_stmt *)0x0;\n          cVar6 = pcVar9[10];\n          psVar38 = (sqlite3_module *)0x0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar21 = pcVar21 + 1;\n              psVar38 = (sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10);\n              cVar6 = *pcVar21;\n              if (9 < (byte)(cVar6 - 0x30U)) break;\n            } while ((int)psVar38 < 0xccccccb);\n            if ((psVar38 == (sqlite3_module *)0x1) || (0x10 < (int)psVar38)) {\n              pVtab[4].pModule = (sqlite3_module *)0x8;\n            }\n            else {\n              pVtab[4].pModule = psVar38;\n            }\n          }\n          else {\n            pVtab[4].pModule = (sqlite3_module *)0x0;\n          }\n          if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n            fts3DbExec(&rc_2,(sqlite3 *)pVtab[1].pModule,\n                       "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                       ,pVtab[1].nRef,pVtab[1].zErrMsg);\n            local_f0 = (sqlite3_stmt *)rc_2;\n            if (rc_2 != 0) goto LAB_0013c0e0;\n            *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n          }\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x17,&pStmt,(sqlite3_value **)pRowid);\n          rc_2 = (int)local_f0;\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pStmt,2,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pStmt,(int)pVtab[4].pModule,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_step(pStmt);\n            local_f0 = (sqlite3_stmt *)sqlite3_reset(pStmt);\n          }\n        }\n      }\nLAB_0013c0e0:\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n      goto LAB_0013ba71;\n    }\n    pMVar10 = apVal[(int)&(pVtab[2].pModule)->xCreate];\n    uVar2 = pMVar10->flags;\n    if ((uVar2 & 4) == 0) {\n      if ((uVar2 & 8) == 0) {\n        if ((uVar2 & 0x12) == 0) goto LAB_0013b900;\n        iVar32 = memIntValue(pMVar10);\n        iVar8 = (int)iVar32;\n      }\n      else {\n        iVar32 = doubleToInt64((pMVar10->u).r);\n        iVar8 = (int)iVar32;\n      }\n    }\n    else {\n      iVar8 = (pMVar10->u).nZero;\n    }\n    if (iVar8 < 0) {\n      rc = 0x13;\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n      goto LAB_0013ba95;\n    }\n  }\nLAB_0013b900:\n  piDocid = (sqlite3_int64 *)sqlite3_initialize();\n  if ((piDocid != (sqlite3_int64 *)0x0) ||\n     (psVar7 = (sqlite3_value *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid)),\n     psVar7 == (sqlite3_value *)0x0)) {\n    rc = 7;\n    pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    goto LAB_0013ba95;\n  }\n  psVar38 = pVtab[2].pModule;\n  aSzDel = (u32 *)((int)((int)&psVar38->iVersion + 1) * 8);\n  piVar35 = (int *)0x0;\n  memset(psVar7,0,(size_t)aSzDel);\n  if (pVtab[0x16].pModule == (sqlite3_module *)0x0) {\n    iVar8 = fts3SqlStmt((Fts3Table *)pVtab,0x10,&pStmt,(sqlite3_value **)pRowid);\n    psVar19 = pStmt;\n    if (iVar8 == 0) {\n      iVar8 = vdbeUnbind((Vdbe *)pStmt,1);\n      if ((iVar8 == 0) && (*(sqlite3_mutex **)(*(int *)psVar19 + 0xc) != (sqlite3_mutex *)0x0)) {\n        (*sqlite3Config.mutex.xMutexLeave)(*(sqlite3_mutex **)(*(int *)psVar19 + 0xc));\n      }\n      sqlite3_step(pStmt);\n      rc = sqlite3_reset(pStmt);\n      iVar8 = rc;\n      if (rc == 0) {\n        if (1 < nArg) {\n          if (pVtab[3].nRef == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }\n  }\n  else {\n    rc = 0;\n    if (nArg < 2) {\nLAB_0013baf0:\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') {\nLAB_0013bce0:\n        iVar8 = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n        rc = iVar8;\n        goto LAB_0013bcfe;\n      }\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n    }\n    else if (pVtab[3].nRef == 0) {\nLAB_0013bc30:\n      pMVar10 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 3)];\n      if ((aType_23891[pMVar10->flags & 0x1f] == '\x05') &&\n         (pMVar10 = apVal[1], aType_23891[pMVar10->flags & 0x1f] == '\x05')) {\nLAB_0013c280:\n        piDocid = (sqlite3_int64 *)0x0;\n      }\n      else {\n        if (aType_23891[(*apVal)->flags & 0x1f] == '\x05') {\nLAB_0013bc87:\n          if (sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==\n              '\x05') {\n            rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n            piDocid = (sqlite3_int64 *)0x0;\n          }\n          else {\n            rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n            piDocid = (sqlite3_int64 *)&DAT_00000001;\n          }\n        }\n        else {\n          iVar32 = sqlite3VdbeIntValue(*apVal);\n          piDocid = (sqlite3_int64 *)iVar32;\n          iVar33 = sqlite3VdbeIntValue(pMVar10);\n          if (iVar33 != CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid)) goto LAB_0013bc87;\n          piDocid = (sqlite3_int64 *)0x0;\n        }\n        iVar8 = rc;\n        if (rc != 0) goto LAB_0013bb29;\n      }\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      iVar8 = 0;\nLAB_0013bcfe:\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      if ((1 < nArg) && (iVar8 == 0)) {\n        iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n        local_124 = (sqlite3_module *)iVar32;\n        if (piDocid == (sqlite3_int64 *)0x0) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n      local_124 = (sqlite3_module *)iVar32;\nLAB_0013b9c2:\n      rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n      if (rc == 0x13) {\n        iVar8 = rc;\n        if (pVtab[3].nRef == 0) {\n          rc = 0x10b;\n          iVar8 = rc;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        iVar8 = rc;\n        if (rc == 0) {\n          psVar38 = (((Fts3Table *)pRowid)->base).pModule;\n          pcVar9 = (char *)(((Fts3Table *)pRowid)->base).nRef;\n          pcVar21 = pVtab[0x16].zErrMsg;\n          uVar11 = (uint)(psVar38 < (sqlite3_module *)pVtab[0x16].nRef);\n          if (((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n             (iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0)) {\n            rc = 0;\n            pVtab[0x17].pModule = local_124;\n            psVar18 = pVtab[2].pModule;\n            pVtab[0x16].zErrMsg = pcVar9;\n            pVtab[0x16].nRef = (int)psVar38;\n            pVtab[0x17].nRef = 0;\n            iVar13 = 0;\n            iVar8 = iVar20;\n            if (0 < (int)psVar18) {\n              do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);\n            }\n          }\n        }\n      }\n      rc = iVar8;\n      if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\n        fts3InsertDocsize(&rc,(Fts3Table *)pVtab,(u32 *)local_12c);\n      }\n      nChng = nChng + 1;\n    }\n    iVar8 = rc;\n    if ((char)pVtab[0x13].nRef != '\0') {\n      fts3UpdateDocTotals(&rc,(Fts3Table *)pVtab,(u32 *)local_12c,(u32 *)psVar7,nChng);\n      iVar8 = rc;\n    }\n  }\nLAB_0013bb29:\n  rc = iVar8;\n  if (sqlite3Config.bMemstat == 0) {\n    (*sqlite3Config.m.xFree)(psVar7);\n    pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n  }\n  else {\n    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n    }\n    iVar8 = (*sqlite3Config.m.xSize)(psVar7);\n    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar8;\n    (*sqlite3Config.m.xFree)(psVar7);\n    if (mem0.mutex == (sqlite3_mutex *)0x0) {\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    }\n    else {\n      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    }\n  }\n  goto LAB_0013ba95;\nLAB_0013d4fe:\n  sqlite3_finalize(pStmt_3);\n  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n  local_f0 = psVar19;\n  goto LAB_0013ba71;\nLAB_0013d234:\n  iVar20 = sqlite3_step(psVar26);\n  psVar19 = pStmt_3;\n  if (iVar20 == 100) {\n    pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n    iVar32 = sqlite3VdbeIntValue(pMVar10);\n    columnMallocFailure(psVar19);\n    psVar19 = pStmt_3;\n    psVar38 = pVtab[2].pModule;\n    if (pVtab[3].zErrMsg == (char *)0x0) {\n      local_b0 = (sqlite3 *)0x0;\n      in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n    }\n    else {\n      pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n      iVar33 = sqlite3VdbeIntValue(pMVar10);\n      local_b0 = (sqlite3 *)iVar33;\n      columnMallocFailure(psVar19);\n      in_stack_fffffec8 = (Fts3MultiSegReader *)((int)local_b0 >> 0x1f);\n      psVar38 = pVtab[2].pModule;\n    }\n    lVar4 = iVar32 * 9 + CONCAT44(in_stack_fffffec8,local_b0);\n    uVar14 = (uint)lVar4;\n    iVar20 = (int)((ulonglong)lVar4 >> 0x20);\n    uVar11 = uVar14 * 9;\n    iVar20 = iVar20 + (iVar20 * 8 | uVar14 >> 0x1d) + (uint)CARRY4(uVar14,uVar14 * 8);\n    psVar26 = pStmt_3;\n    pRowid = (sqlite_int64 *)local_b0;\n    if (0 < (int)psVar38) {\n      local_114 = (sqlite3_stmt *)0x0;\n      pcVar9 = pVtab[2].zErrMsg;\n      do {\n        local_10c = (int)local_114 + 1;\n        if (pcVar9[(int)local_114] == '\0') {\n          uVar27 = (uint)((ulonglong)uVar11 * 9);\n          local_dc = uVar27 + (int)local_114;\n          local_d8 = (int)((ulonglong)uVar11 * 9 >> 0x20) + iVar20 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar27,(uint)local_114);\n          local_e4 = (int)local_114 + uVar14 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar20 * 8 | uVar11 >> 0x1d) + iVar20 + (uint)CARRY4(uVar14 * 0x48,uVar11) +\n                     (uint)CARRY4((uint)local_114,uVar14 * 0x51);\n          while( true ) {\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_03);\n            columnMallocFailure(psVar26);\n            psVar19 = pStmt_3;\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            iVar13 = sqlite3ValueBytes(pMVar10,enc_04);\n            columnMallocFailure(psVar19);\n            pT = (sqlite3_tokenizer_cursor *)0x0;\n            psVar19 = (sqlite3_stmt *)\n                      sqlite3Fts3OpenTokenizer\n                                ((sqlite3_tokenizer *)pVtab[3].pModule,(int)local_b0,pcVar9,iVar13,\n                                 &pT);\n            if (psVar19 == (sqlite3_stmt *)0x0) {\n              while( true ) {\n                iCol._0_4_ = 0;\n                iVal._0_4_ = 0;\n                rc_2 = 0;\n                pStmt = (sqlite3_stmt *)0x0;\n                psVar19 = (sqlite3_stmt *)\n                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt);\n                if (psVar19 != (sqlite3_stmt *)0x0) break;\n                psVar19 = pStmt + local_e4 + local_e4 * 8;\n                uVar27 = ((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8);\n                if (0 < (int)(uint)iCol) {\n                  pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));\n                  psVar23 = (sqlite3 *)iDocid;\n                  do {\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  } while ((sqlite3 *)pRowid != psVar23);\n                }\n                local_ec = local_ec ^ (uint)psVar19;\n                local_e8 = local_e8 ^ uVar27;\n                if (1 < (int)pVtab[0x15].pModule) {\n                  pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);\n                  local_12c = pStmt + local_dc + local_dc * 8;\n                  local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);\n                  do {\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid);\n                }\n              }\n            }\n            if (pT != (sqlite3_tokenizer_cursor *)0x0) {\n              (**(code **)(iVar8 + 0x10))(pT);\n            }\n            if (psVar19 != (sqlite3_stmt *)0x65) goto LAB_0013d4fe;\n            psVar38 = pVtab[2].pModule;\n            psVar26 = pStmt_3;\n            if ((int)psVar38 <= (int)local_10c) goto LAB_0013d234;\n            bVar30 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar30;\n            pcVar9 = pVtab[2].zErrMsg;\n            uVar27 = local_10c;\n            bVar30 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar30;\n            if (pcVar9[local_10c] != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = (sqlite3_stmt *)uVar27;\n          }\n          local_10c = (int)local_114 + 2;\n        }\n        local_114 = (sqlite3_stmt *)local_10c;\n      } while ((int)local_114 < (int)psVar38);\n    }\n    goto LAB_0013d234;\n  }\n  sqlite3_finalize(pStmt_3);\n  if (local_e8 == local_b4 && local_ec == local_d0) goto LAB_0013c0e0;\n  local_f0 = (sqlite3_stmt *)0x10b;\n  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\nLAB_0013ba71:\n  rc = (int)local_f0;\nLAB_0013ba95:\n  sqlite3_blob_close(pBlob);\n  pVtab[0x14].zErrMsg = (char *)0x0;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return rc;\n}" { (declaration "sqlite3_stmt *psVar1;" type_identifier (pointer_declarator "*psVar1" * identifier) ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "void *pvVar3;" primitive_type (pointer_declarator "*pvVar3" * identifier) ;) (declaration "longlong lVar4;" type_identifier identifier ;) (declaration "sqlite3_stmt *pStmt_00;" type_identifier (pointer_declarator "*pStmt_00" * identifier) ;) (declaration "Op *pOVar5;" type_identifier (pointer_declarator "*pOVar5" * identifier) ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "sqlite3_int64 *piDocid;" type_identifier (pointer_declarator "*piDocid" * identifier) ;) (declaration "sqlite3_value *psVar7;" type_identifier (pointer_declarator "*psVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "sqlite3_blob *pBlob;" type_identifier (pointer_declarator "*pBlob" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "Mem *pMVar10;" type_identifier (pointer_declarator "*pMVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "Vdbe *pVVar12;" type_identifier (pointer_declarator "*pVVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "sqlite3_module *psVar18;" type_identifier (pointer_declarator "*psVar18" * identifier) ;) (declaration "sqlite3_stmt *psVar19;" type_identifier (pointer_declarator "*psVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "char *pcVar21;" primitive_type (pointer_declarator "*pcVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "u8 in_DL;" type_identifier identifier ;) (declaration "u8 enc;" type_identifier identifier ;) (declaration "u8 enc_00;" type_identifier identifier ;) (declaration "u8 enc_01;" type_identifier identifier ;) (declaration "u8 enc_02;" type_identifier identifier ;) (declaration "u8 enc_03;" type_identifier identifier ;) (declaration "u8 enc_04;" type_identifier identifier ;) (declaration "void *p;" primitive_type (pointer_declarator "*p" * identifier) ;) (declaration "sqlite3 *psVar23;" type_identifier (pointer_declarator "*psVar23" * identifier) ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "int extraout_EDX_00;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "u8 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "u8 *pBuf;" type_identifier (pointer_declarator "*pBuf" * identifier) ;) (declaration "sqlite3_stmt *psVar26;" type_identifier (pointer_declarator "*psVar26" * identifier) ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "VdbeCursor **ppVVar28;" type_identifier (pointer_declarator "**ppVVar28" * (pointer_declarator "*ppVVar28" * identifier)) ;) (declaration "Fts3MultiSegReader *pFVar29;" type_identifier (pointer_declarator "*pFVar29" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar30;" primitive_type identifier ;) (declaration "byte bVar31;" type_identifier identifier ;) (declaration "i64 iVar32;" type_identifier identifier ;) (declaration "i64 iVar33;" type_identifier identifier ;) (declaration "sqlite_int64 sVar34;" type_identifier identifier ;) (declaration "int *piVar35;" primitive_type (pointer_declarator "*piVar35" * identifier) ;) (declaration "sqlite3_stmt *psVar36;" type_identifier (pointer_declarator "*psVar36" * identifier) ;) (declaration "char *in_stack_fffffebc;" primitive_type (pointer_declarator "*in_stack_fffffebc" * identifier) ;) (declaration "u32 *aSzDel;" type_identifier (pointer_declarator "*aSzDel" * identifier) ;) (declaration "Fts3MultiSegReader *in_stack_fffffec8;" type_identifier (pointer_declarator "*in_stack_fffffec8" * identifier) ;) (declaration "u8 *puVar37;" type_identifier (pointer_declarator "*puVar37" * identifier) ;) (declaration "sqlite3_module *psVar38;" type_identifier (pointer_declarator "*psVar38" * identifier) ;) (declaration "sqlite3_stmt *local_12c;" type_identifier (pointer_declarator "*local_12c" * identifier) ;) (declaration "int local_128;" primitive_type identifier ;) (declaration "sqlite3_module *local_124;" type_identifier (pointer_declarator "*local_124" * identifier) ;) (declaration "sqlite3_stmt *local_114;" type_identifier (pointer_declarator "*local_114" * identifier) ;) (declaration "int local_110;" primitive_type identifier ;) (declaration "uint local_10c;" type_identifier identifier ;) (declaration "sqlite3_stmt *local_108;" type_identifier (pointer_declarator "*local_108" * identifier) ;) (declaration "uint local_104;" type_identifier identifier ;) (declaration "uint local_100;" type_identifier identifier ;) (declaration "sqlite3_stmt *local_f0;" type_identifier (pointer_declarator "*local_f0" * identifier) ;) (declaration "uint local_ec;" type_identifier identifier ;) (declaration "uint local_e8;" type_identifier identifier ;) (declaration "uint local_e4;" type_identifier identifier ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "uint local_dc;" type_identifier identifier ;) (declaration "int local_d8;" primitive_type identifier ;) (declaration "uint local_d0;" type_identifier identifier ;) (declaration "uint local_b4;" type_identifier identifier ;) (declaration "sqlite3 *local_b0;" type_identifier (pointer_declarator "*local_b0" * identifier) ;) (declaration "int rc;" primitive_type identifier ;) (declaration "int nChng;" primitive_type identifier ;) (declaration "sqlite3_stmt *pAllLangid;" type_identifier (pointer_declarator "*pAllLangid" * identifier) ;) (declaration "sqlite3_stmt *pStmt_3;" type_identifier (pointer_declarator "*pStmt_3" * identifier) ;) (declaration "sqlite3_tokenizer_cursor *pT;" type_identifier (pointer_declarator "*pT" * identifier) ;) (declaration "i64 iDocid;" type_identifier identifier ;) (declaration "i64 iCol;" type_identifier identifier ;) (declaration "i64 iVal;" type_identifier identifier ;) (declaration "int rc_2;" primitive_type identifier ;) (declaration "Fts3Table *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "sqlite3_stmt *pStmt;" type_identifier (pointer_declarator "*pStmt" * identifier) ;) (declaration "Vdbe *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "Parse *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "char *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "VdbeCursor **local_30;" type_identifier (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier)) ;) (declaration "Mem *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "Op *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "bVar31 = 0;" (assignment_expression "bVar31 = 0" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "rc = 0;" (assignment_expression "rc = 0" identifier = number_literal) ;) (expression_statement "nChng = 0;" (assignment_expression "nChng = 0" identifier = number_literal) ;) (if_statement "if (1 < nArg) {\n    if ((aType_23891[(*apVal)->flags & 0x1f] == '\x05') &&\n       (psVar7 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 2)],\n       aType_23891[psVar7->flags & 0x1f] != '\x05')) {\n      pcVar9 = (char *)sqlite3ValueText(psVar7,in_DL);\n      iVar8 = sqlite3ValueBytes(psVar7,enc);\n      if (pcVar9 == (char *)0x0) {\n        local_f0 = (sqlite3_stmt *)0x7;\n        pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n        goto LAB_0013ba71;\n      }\n      if (iVar8 == 8) {\n        iVar8 = sqlite3_strnicmp(pcVar9,"optimize",8);\n        if (iVar8 == 0) {\n          local_f0 = (sqlite3_stmt *)fts3DoOptimize((Fts3Table *)pVtab,0);\n          pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n        if (iVar8 == 0) {\nLAB_0013be74:\n          cVar6 = pcVar9[6];\n          pcVar9 = pcVar9 + 6;\n          iVar8 = 0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar9 = pcVar9 + 1;\n              iVar8 = cVar6 + -0x30 + iVar8 * 10;\n              cVar6 = *pcVar9;\n              if (9 < (byte)(cVar6 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar8 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar6 == ',') {\n              cVar6 = pcVar9[1];\n              if ((cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)) {\n                iVar20 = 0;\n                do {\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                } while (iVar20 < 0xccccccb);\n                if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;\n              }\n            }\n            else if (cVar6 == '\0') {\n              iVar20 = 8;\nLAB_0013bf06:\n              pStmt = (sqlite3_stmt *)0x0;\n              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }\n              else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }\n              sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);\n              pVtab[0x14].zErrMsg = (char *)0x0;\n              pBlob = (sqlite3_blob *)0x0;\n              local_f0 = pStmt;\n              goto LAB_0013ba71;\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (sqlite3_stmt *)&DAT_00000001;\n        pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n        goto LAB_0013ba71;\n      }\n      if (iVar8 == 7) {\n        iVar8 = sqlite3_strnicmp(pcVar9,"rebuild",7);\n        if (iVar8 != 0) goto LAB_0013be5a;\n        local_f0 = (sqlite3_stmt *)fts3DeleteAll((Fts3Table *)pVtab,0);\n        rc_2 = (int)local_f0;\n        if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n        pStmt = (sqlite3_stmt *)0x0;\n        pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n        if (pcVar9 == (char *)0x0) goto LAB_0013d10b;\n        rc_2 = sqlite3LockAndPrepare\n                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt,\n                          (sqlite3_stmt **)0x0,(char **)pRowid);\n        sqlite3_free(pcVar9);\n        if (rc_2 == 0) {\n          psVar38 = pVtab[2].pModule;\n          iVar8 = sqlite3_initialize();\n          if (iVar8 != 0) {\nLAB_0013d10b:\n            rc_2 = 7;\n            goto LAB_0013d116;\n          }\n          local_114 = (sqlite3_stmt *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid));\n          if (local_114 == (sqlite3_stmt *)0x0) goto LAB_0013d10b;\n          psVar19 = local_114;\n          memset(local_114,0,(int)((int)&psVar38->iVersion + 1) * 0xc);\n          iVar8 = (int)pVtab[2].pModule * 4 + 4;\n          local_114 = local_114 + iVar8;\n          local_108 = local_114 + iVar8;\n          local_f0 = (sqlite3_stmt *)0x0;\n          while ((rc_2 == 0 && (iVar8 = sqlite3_step(pStmt), psVar26 = pStmt, iVar8 == 100))) {\n            psVar38 = (sqlite3_module *)0x0;\n            iVar8 = extraout_EDX;\n            if (pVtab[3].zErrMsg != (char *)0x0) {\n              pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n              iVar32 = sqlite3VdbeIntValue(pMVar10);\n              psVar38 = (sqlite3_module *)iVar32;\n              columnMallocFailure(psVar26);\n              iVar8 = extraout_EDX_00;\n            }\n            sVar34 = sqlite3_column_int64(pStmt,iVar8);\n            iVar20 = (int)((ulonglong)sVar34 >> 0x20);\n            lVar4._0_4_ = pVtab[0x16].nRef;\n            lVar4._4_4_ = pVtab[0x16].zErrMsg;\n            uVar11 = (uint)((uint)sVar34 < (uint)pVtab[0x16].nRef);\n            iVar8 = iVar20 - (int)pVtab[0x16].zErrMsg;\n            if (((((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0) &&\n                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 )) && ((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n               (rc_2 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), rc_2 == 0)) {\n              pVtab[0x16].nRef = (int)sVar34;\n              pVtab[0x16].zErrMsg = (char *)(int)((ulonglong)sVar34 >> 0x20);\n              pVtab[0x17].nRef = 0;\n              pVtab[0x17].pModule = psVar38;\n              rc_2 = 0;\n            }\n            memset(psVar19,0,(int)pVtab[2].pModule * 4 + 4);\n            if (rc_2 == 0) {\n              psVar18 = pVtab[2].pModule;\n              if (0 < (int)psVar18) {\n                psVar26 = (sqlite3_stmt *)0x0;\n                do {\n                  psVar36 = pStmt;\n                  psVar1 = psVar26 + 1;\n                  if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }\n                  psVar26 = psVar1;\n                } while ((int)psVar1 < (int)psVar18);\n              }\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (sqlite3_stmt *)((int)local_f0 + 1);\n              if (-1 < (int)psVar18) {\n                iVar8 = 0;\n                do {\n                  *(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);\n                  iVar8 = iVar8 + 1;\n                } while (iVar8 <= (int)pVtab[2].pModule);\n              }\n            }\n            else {\nLAB_0013d062:\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\nLAB_0013d0c3:\n                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);\n                if (rc_2 == 0) {\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }\n              }\n              sqlite3_finalize(pStmt);\n              pStmt = (sqlite3_stmt *)0x0;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (sqlite3_stmt *)0x0;\n          local_114 = (sqlite3_stmt *)0x0;\n          psVar19 = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)0x0;\n        }\n        if ((char)pVtab[0x13].nRef != '\0') {\n          fts3UpdateDocTotals(&rc_2,(Fts3Table *)pVtab,(u32 *)local_114,(u32 *)local_108,\n                              (int)local_f0);\n        }\n        sqlite3_free(psVar19);\n        if ((pStmt != (sqlite3_stmt *)0x0) && (iVar8 = sqlite3_finalize(pStmt), rc_2 == 0)) {\n          rc_2 = iVar8;\n        }\n        local_f0 = (sqlite3_stmt *)rc_2;\n      }\n      else {\n        if (iVar8 != 0xf) {\n          if (6 < iVar8) {\n            iVar20 = sqlite3_strnicmp(pcVar9,"merge=",6);\n            if (iVar20 == 0) goto LAB_0013be74;\n            if (10 < iVar8) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar8 = sqlite3_strnicmp(pcVar9,"integrity-check",0xf);\n        if (iVar8 == 0) {\n          pAllLangid = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x1b,&pAllLangid,(sqlite3_value **)pRowid);\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x17].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x15].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar8 = sqlite3_step(pAllLangid);\n                psVar19 = pAllLangid;\n                if (iVar8 != 100) {\n                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);\n                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n                  iVar8 = (pVtab[3].pModule)->iVersion;\n                  pStmt_3 = (sqlite3_stmt *)0x0;\n                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n                  if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  sqlite3_finalize(pStmt_3);\n                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n                  local_f0 = (sqlite3_stmt *)0x7;\n                  goto LAB_0013ba71;\n                }\n                pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n                iVar32 = sqlite3VdbeIntValue(pMVar10);\n                uVar11 = (uint)iVar32;\n                iVar8 = 0x13c3a3;\n                columnMallocFailure(psVar19);\n              } while ((int)pVtab[0x15].pModule < 1);\n              local_114 = (sqlite3_stmt *)0x0;\n              local_110 = 0;\n              do {\n                rc_2 = 0;\n                local_64 = (Fts3Table *)0x0;\n                local_60 = 0;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                for (iVar20 = 0xe; iVar20 != 0; iVar20 = iVar20 + -1) {\n                  pFVar29->apSegment = (Fts3SegReader **)0x0;\n                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);\n                }\n                local_5c = 0x13;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                local_12c = (sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt);\n                if ((local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  iVar8 = 0x13c8ad;\n                  local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);\n                  pOVar5 = local_28;\n                  if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                psVar19 = pStmt;\n                if (0 < (int)local_54) {\n                  iVar20 = 0;\n                  pVVar12 = local_54;\n                  do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);\n                }\nLAB_0013c5e2:\n                if (psVar19 != (sqlite3_stmt *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                pcVar9 = local_48;\n                if (local_48 != (char *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                bVar30 = 0xfffffffe < local_114;\n                local_114 = (sqlite3_stmt *)((int)local_114 + 1);\n                local_110 = local_110 + (uint)bVar30;\n              } while ((int)local_114 < (int)pVtab[0x15].pModule);\n            } while (local_12c == (sqlite3_stmt *)0x0);\n            sqlite3_reset(pAllLangid);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n          if (iVar8 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar8 = sqlite3_strnicmp(pcVar9,"automerge=",10);\n          if (iVar8 != 0) goto LAB_0013ba5f;\n          rc_2 = 0;\n          pcVar21 = pcVar9 + 10;\n          pStmt = (sqlite3_stmt *)0x0;\n          cVar6 = pcVar9[10];\n          psVar38 = (sqlite3_module *)0x0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar21 = pcVar21 + 1;\n              psVar38 = (sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10);\n              cVar6 = *pcVar21;\n              if (9 < (byte)(cVar6 - 0x30U)) break;\n            } while ((int)psVar38 < 0xccccccb);\n            if ((psVar38 == (sqlite3_module *)0x1) || (0x10 < (int)psVar38)) {\n              pVtab[4].pModule = (sqlite3_module *)0x8;\n            }\n            else {\n              pVtab[4].pModule = psVar38;\n            }\n          }\n          else {\n            pVtab[4].pModule = (sqlite3_module *)0x0;\n          }\n          if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n            fts3DbExec(&rc_2,(sqlite3 *)pVtab[1].pModule,\n                       "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                       ,pVtab[1].nRef,pVtab[1].zErrMsg);\n            local_f0 = (sqlite3_stmt *)rc_2;\n            if (rc_2 != 0) goto LAB_0013c0e0;\n            *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n          }\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x17,&pStmt,(sqlite3_value **)pRowid);\n          rc_2 = (int)local_f0;\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pStmt,2,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pStmt,(int)pVtab[4].pModule,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_step(pStmt);\n            local_f0 = (sqlite3_stmt *)sqlite3_reset(pStmt);\n          }\n        }\n      }\nLAB_0013c0e0:\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n      goto LAB_0013ba71;\n    }\n    pMVar10 = apVal[(int)&(pVtab[2].pModule)->xCreate];\n    uVar2 = pMVar10->flags;\n    if ((uVar2 & 4) == 0) {\n      if ((uVar2 & 8) == 0) {\n        if ((uVar2 & 0x12) == 0) goto LAB_0013b900;\n        iVar32 = memIntValue(pMVar10);\n        iVar8 = (int)iVar32;\n      }\n      else {\n        iVar32 = doubleToInt64((pMVar10->u).r);\n        iVar8 = (int)iVar32;\n      }\n    }\n    else {\n      iVar8 = (pMVar10->u).nZero;\n    }\n    if (iVar8 < 0) {\n      rc = 0x13;\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n      goto LAB_0013ba95;\n    }\n  }" if (parenthesized_expression "(1 < nArg)" ( (binary_expression "1 < nArg" number_literal < identifier) )) (compound_statement "{\n    if ((aType_23891[(*apVal)->flags & 0x1f] == '\x05') &&\n       (psVar7 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 2)],\n       aType_23891[psVar7->flags & 0x1f] != '\x05')) {\n      pcVar9 = (char *)sqlite3ValueText(psVar7,in_DL);\n      iVar8 = sqlite3ValueBytes(psVar7,enc);\n      if (pcVar9 == (char *)0x0) {\n        local_f0 = (sqlite3_stmt *)0x7;\n        pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n        goto LAB_0013ba71;\n      }\n      if (iVar8 == 8) {\n        iVar8 = sqlite3_strnicmp(pcVar9,"optimize",8);\n        if (iVar8 == 0) {\n          local_f0 = (sqlite3_stmt *)fts3DoOptimize((Fts3Table *)pVtab,0);\n          pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n        if (iVar8 == 0) {\nLAB_0013be74:\n          cVar6 = pcVar9[6];\n          pcVar9 = pcVar9 + 6;\n          iVar8 = 0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar9 = pcVar9 + 1;\n              iVar8 = cVar6 + -0x30 + iVar8 * 10;\n              cVar6 = *pcVar9;\n              if (9 < (byte)(cVar6 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar8 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar6 == ',') {\n              cVar6 = pcVar9[1];\n              if ((cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)) {\n                iVar20 = 0;\n                do {\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                } while (iVar20 < 0xccccccb);\n                if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;\n              }\n            }\n            else if (cVar6 == '\0') {\n              iVar20 = 8;\nLAB_0013bf06:\n              pStmt = (sqlite3_stmt *)0x0;\n              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }\n              else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }\n              sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);\n              pVtab[0x14].zErrMsg = (char *)0x0;\n              pBlob = (sqlite3_blob *)0x0;\n              local_f0 = pStmt;\n              goto LAB_0013ba71;\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (sqlite3_stmt *)&DAT_00000001;\n        pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n        goto LAB_0013ba71;\n      }\n      if (iVar8 == 7) {\n        iVar8 = sqlite3_strnicmp(pcVar9,"rebuild",7);\n        if (iVar8 != 0) goto LAB_0013be5a;\n        local_f0 = (sqlite3_stmt *)fts3DeleteAll((Fts3Table *)pVtab,0);\n        rc_2 = (int)local_f0;\n        if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n        pStmt = (sqlite3_stmt *)0x0;\n        pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n        if (pcVar9 == (char *)0x0) goto LAB_0013d10b;\n        rc_2 = sqlite3LockAndPrepare\n                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt,\n                          (sqlite3_stmt **)0x0,(char **)pRowid);\n        sqlite3_free(pcVar9);\n        if (rc_2 == 0) {\n          psVar38 = pVtab[2].pModule;\n          iVar8 = sqlite3_initialize();\n          if (iVar8 != 0) {\nLAB_0013d10b:\n            rc_2 = 7;\n            goto LAB_0013d116;\n          }\n          local_114 = (sqlite3_stmt *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid));\n          if (local_114 == (sqlite3_stmt *)0x0) goto LAB_0013d10b;\n          psVar19 = local_114;\n          memset(local_114,0,(int)((int)&psVar38->iVersion + 1) * 0xc);\n          iVar8 = (int)pVtab[2].pModule * 4 + 4;\n          local_114 = local_114 + iVar8;\n          local_108 = local_114 + iVar8;\n          local_f0 = (sqlite3_stmt *)0x0;\n          while ((rc_2 == 0 && (iVar8 = sqlite3_step(pStmt), psVar26 = pStmt, iVar8 == 100))) {\n            psVar38 = (sqlite3_module *)0x0;\n            iVar8 = extraout_EDX;\n            if (pVtab[3].zErrMsg != (char *)0x0) {\n              pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n              iVar32 = sqlite3VdbeIntValue(pMVar10);\n              psVar38 = (sqlite3_module *)iVar32;\n              columnMallocFailure(psVar26);\n              iVar8 = extraout_EDX_00;\n            }\n            sVar34 = sqlite3_column_int64(pStmt,iVar8);\n            iVar20 = (int)((ulonglong)sVar34 >> 0x20);\n            lVar4._0_4_ = pVtab[0x16].nRef;\n            lVar4._4_4_ = pVtab[0x16].zErrMsg;\n            uVar11 = (uint)((uint)sVar34 < (uint)pVtab[0x16].nRef);\n            iVar8 = iVar20 - (int)pVtab[0x16].zErrMsg;\n            if (((((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0) &&\n                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 )) && ((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n               (rc_2 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), rc_2 == 0)) {\n              pVtab[0x16].nRef = (int)sVar34;\n              pVtab[0x16].zErrMsg = (char *)(int)((ulonglong)sVar34 >> 0x20);\n              pVtab[0x17].nRef = 0;\n              pVtab[0x17].pModule = psVar38;\n              rc_2 = 0;\n            }\n            memset(psVar19,0,(int)pVtab[2].pModule * 4 + 4);\n            if (rc_2 == 0) {\n              psVar18 = pVtab[2].pModule;\n              if (0 < (int)psVar18) {\n                psVar26 = (sqlite3_stmt *)0x0;\n                do {\n                  psVar36 = pStmt;\n                  psVar1 = psVar26 + 1;\n                  if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }\n                  psVar26 = psVar1;\n                } while ((int)psVar1 < (int)psVar18);\n              }\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (sqlite3_stmt *)((int)local_f0 + 1);\n              if (-1 < (int)psVar18) {\n                iVar8 = 0;\n                do {\n                  *(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);\n                  iVar8 = iVar8 + 1;\n                } while (iVar8 <= (int)pVtab[2].pModule);\n              }\n            }\n            else {\nLAB_0013d062:\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\nLAB_0013d0c3:\n                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);\n                if (rc_2 == 0) {\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }\n              }\n              sqlite3_finalize(pStmt);\n              pStmt = (sqlite3_stmt *)0x0;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (sqlite3_stmt *)0x0;\n          local_114 = (sqlite3_stmt *)0x0;\n          psVar19 = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)0x0;\n        }\n        if ((char)pVtab[0x13].nRef != '\0') {\n          fts3UpdateDocTotals(&rc_2,(Fts3Table *)pVtab,(u32 *)local_114,(u32 *)local_108,\n                              (int)local_f0);\n        }\n        sqlite3_free(psVar19);\n        if ((pStmt != (sqlite3_stmt *)0x0) && (iVar8 = sqlite3_finalize(pStmt), rc_2 == 0)) {\n          rc_2 = iVar8;\n        }\n        local_f0 = (sqlite3_stmt *)rc_2;\n      }\n      else {\n        if (iVar8 != 0xf) {\n          if (6 < iVar8) {\n            iVar20 = sqlite3_strnicmp(pcVar9,"merge=",6);\n            if (iVar20 == 0) goto LAB_0013be74;\n            if (10 < iVar8) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar8 = sqlite3_strnicmp(pcVar9,"integrity-check",0xf);\n        if (iVar8 == 0) {\n          pAllLangid = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x1b,&pAllLangid,(sqlite3_value **)pRowid);\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x17].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x15].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar8 = sqlite3_step(pAllLangid);\n                psVar19 = pAllLangid;\n                if (iVar8 != 100) {\n                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);\n                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n                  iVar8 = (pVtab[3].pModule)->iVersion;\n                  pStmt_3 = (sqlite3_stmt *)0x0;\n                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n                  if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  sqlite3_finalize(pStmt_3);\n                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n                  local_f0 = (sqlite3_stmt *)0x7;\n                  goto LAB_0013ba71;\n                }\n                pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n                iVar32 = sqlite3VdbeIntValue(pMVar10);\n                uVar11 = (uint)iVar32;\n                iVar8 = 0x13c3a3;\n                columnMallocFailure(psVar19);\n              } while ((int)pVtab[0x15].pModule < 1);\n              local_114 = (sqlite3_stmt *)0x0;\n              local_110 = 0;\n              do {\n                rc_2 = 0;\n                local_64 = (Fts3Table *)0x0;\n                local_60 = 0;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                for (iVar20 = 0xe; iVar20 != 0; iVar20 = iVar20 + -1) {\n                  pFVar29->apSegment = (Fts3SegReader **)0x0;\n                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);\n                }\n                local_5c = 0x13;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                local_12c = (sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt);\n                if ((local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  iVar8 = 0x13c8ad;\n                  local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);\n                  pOVar5 = local_28;\n                  if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                psVar19 = pStmt;\n                if (0 < (int)local_54) {\n                  iVar20 = 0;\n                  pVVar12 = local_54;\n                  do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);\n                }\nLAB_0013c5e2:\n                if (psVar19 != (sqlite3_stmt *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                pcVar9 = local_48;\n                if (local_48 != (char *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                bVar30 = 0xfffffffe < local_114;\n                local_114 = (sqlite3_stmt *)((int)local_114 + 1);\n                local_110 = local_110 + (uint)bVar30;\n              } while ((int)local_114 < (int)pVtab[0x15].pModule);\n            } while (local_12c == (sqlite3_stmt *)0x0);\n            sqlite3_reset(pAllLangid);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n          if (iVar8 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar8 = sqlite3_strnicmp(pcVar9,"automerge=",10);\n          if (iVar8 != 0) goto LAB_0013ba5f;\n          rc_2 = 0;\n          pcVar21 = pcVar9 + 10;\n          pStmt = (sqlite3_stmt *)0x0;\n          cVar6 = pcVar9[10];\n          psVar38 = (sqlite3_module *)0x0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar21 = pcVar21 + 1;\n              psVar38 = (sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10);\n              cVar6 = *pcVar21;\n              if (9 < (byte)(cVar6 - 0x30U)) break;\n            } while ((int)psVar38 < 0xccccccb);\n            if ((psVar38 == (sqlite3_module *)0x1) || (0x10 < (int)psVar38)) {\n              pVtab[4].pModule = (sqlite3_module *)0x8;\n            }\n            else {\n              pVtab[4].pModule = psVar38;\n            }\n          }\n          else {\n            pVtab[4].pModule = (sqlite3_module *)0x0;\n          }\n          if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n            fts3DbExec(&rc_2,(sqlite3 *)pVtab[1].pModule,\n                       "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                       ,pVtab[1].nRef,pVtab[1].zErrMsg);\n            local_f0 = (sqlite3_stmt *)rc_2;\n            if (rc_2 != 0) goto LAB_0013c0e0;\n            *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n          }\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x17,&pStmt,(sqlite3_value **)pRowid);\n          rc_2 = (int)local_f0;\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pStmt,2,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pStmt,(int)pVtab[4].pModule,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_step(pStmt);\n            local_f0 = (sqlite3_stmt *)sqlite3_reset(pStmt);\n          }\n        }\n      }\nLAB_0013c0e0:\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n      goto LAB_0013ba71;\n    }\n    pMVar10 = apVal[(int)&(pVtab[2].pModule)->xCreate];\n    uVar2 = pMVar10->flags;\n    if ((uVar2 & 4) == 0) {\n      if ((uVar2 & 8) == 0) {\n        if ((uVar2 & 0x12) == 0) goto LAB_0013b900;\n        iVar32 = memIntValue(pMVar10);\n        iVar8 = (int)iVar32;\n      }\n      else {\n        iVar32 = doubleToInt64((pMVar10->u).r);\n        iVar8 = (int)iVar32;\n      }\n    }\n    else {\n      iVar8 = (pMVar10->u).nZero;\n    }\n    if (iVar8 < 0) {\n      rc = 0x13;\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n      goto LAB_0013ba95;\n    }\n  }" { (if_statement "if ((aType_23891[(*apVal)->flags & 0x1f] == '\x05') &&\n       (psVar7 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 2)],\n       aType_23891[psVar7->flags & 0x1f] != '\x05')) {\n      pcVar9 = (char *)sqlite3ValueText(psVar7,in_DL);\n      iVar8 = sqlite3ValueBytes(psVar7,enc);\n      if (pcVar9 == (char *)0x0) {\n        local_f0 = (sqlite3_stmt *)0x7;\n        pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n        goto LAB_0013ba71;\n      }\n      if (iVar8 == 8) {\n        iVar8 = sqlite3_strnicmp(pcVar9,"optimize",8);\n        if (iVar8 == 0) {\n          local_f0 = (sqlite3_stmt *)fts3DoOptimize((Fts3Table *)pVtab,0);\n          pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n        if (iVar8 == 0) {\nLAB_0013be74:\n          cVar6 = pcVar9[6];\n          pcVar9 = pcVar9 + 6;\n          iVar8 = 0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar9 = pcVar9 + 1;\n              iVar8 = cVar6 + -0x30 + iVar8 * 10;\n              cVar6 = *pcVar9;\n              if (9 < (byte)(cVar6 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar8 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar6 == ',') {\n              cVar6 = pcVar9[1];\n              if ((cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)) {\n                iVar20 = 0;\n                do {\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                } while (iVar20 < 0xccccccb);\n                if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;\n              }\n            }\n            else if (cVar6 == '\0') {\n              iVar20 = 8;\nLAB_0013bf06:\n              pStmt = (sqlite3_stmt *)0x0;\n              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }\n              else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }\n              sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);\n              pVtab[0x14].zErrMsg = (char *)0x0;\n              pBlob = (sqlite3_blob *)0x0;\n              local_f0 = pStmt;\n              goto LAB_0013ba71;\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (sqlite3_stmt *)&DAT_00000001;\n        pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n        goto LAB_0013ba71;\n      }\n      if (iVar8 == 7) {\n        iVar8 = sqlite3_strnicmp(pcVar9,"rebuild",7);\n        if (iVar8 != 0) goto LAB_0013be5a;\n        local_f0 = (sqlite3_stmt *)fts3DeleteAll((Fts3Table *)pVtab,0);\n        rc_2 = (int)local_f0;\n        if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n        pStmt = (sqlite3_stmt *)0x0;\n        pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n        if (pcVar9 == (char *)0x0) goto LAB_0013d10b;\n        rc_2 = sqlite3LockAndPrepare\n                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt,\n                          (sqlite3_stmt **)0x0,(char **)pRowid);\n        sqlite3_free(pcVar9);\n        if (rc_2 == 0) {\n          psVar38 = pVtab[2].pModule;\n          iVar8 = sqlite3_initialize();\n          if (iVar8 != 0) {\nLAB_0013d10b:\n            rc_2 = 7;\n            goto LAB_0013d116;\n          }\n          local_114 = (sqlite3_stmt *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid));\n          if (local_114 == (sqlite3_stmt *)0x0) goto LAB_0013d10b;\n          psVar19 = local_114;\n          memset(local_114,0,(int)((int)&psVar38->iVersion + 1) * 0xc);\n          iVar8 = (int)pVtab[2].pModule * 4 + 4;\n          local_114 = local_114 + iVar8;\n          local_108 = local_114 + iVar8;\n          local_f0 = (sqlite3_stmt *)0x0;\n          while ((rc_2 == 0 && (iVar8 = sqlite3_step(pStmt), psVar26 = pStmt, iVar8 == 100))) {\n            psVar38 = (sqlite3_module *)0x0;\n            iVar8 = extraout_EDX;\n            if (pVtab[3].zErrMsg != (char *)0x0) {\n              pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n              iVar32 = sqlite3VdbeIntValue(pMVar10);\n              psVar38 = (sqlite3_module *)iVar32;\n              columnMallocFailure(psVar26);\n              iVar8 = extraout_EDX_00;\n            }\n            sVar34 = sqlite3_column_int64(pStmt,iVar8);\n            iVar20 = (int)((ulonglong)sVar34 >> 0x20);\n            lVar4._0_4_ = pVtab[0x16].nRef;\n            lVar4._4_4_ = pVtab[0x16].zErrMsg;\n            uVar11 = (uint)((uint)sVar34 < (uint)pVtab[0x16].nRef);\n            iVar8 = iVar20 - (int)pVtab[0x16].zErrMsg;\n            if (((((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0) &&\n                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 )) && ((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n               (rc_2 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), rc_2 == 0)) {\n              pVtab[0x16].nRef = (int)sVar34;\n              pVtab[0x16].zErrMsg = (char *)(int)((ulonglong)sVar34 >> 0x20);\n              pVtab[0x17].nRef = 0;\n              pVtab[0x17].pModule = psVar38;\n              rc_2 = 0;\n            }\n            memset(psVar19,0,(int)pVtab[2].pModule * 4 + 4);\n            if (rc_2 == 0) {\n              psVar18 = pVtab[2].pModule;\n              if (0 < (int)psVar18) {\n                psVar26 = (sqlite3_stmt *)0x0;\n                do {\n                  psVar36 = pStmt;\n                  psVar1 = psVar26 + 1;\n                  if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }\n                  psVar26 = psVar1;\n                } while ((int)psVar1 < (int)psVar18);\n              }\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (sqlite3_stmt *)((int)local_f0 + 1);\n              if (-1 < (int)psVar18) {\n                iVar8 = 0;\n                do {\n                  *(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);\n                  iVar8 = iVar8 + 1;\n                } while (iVar8 <= (int)pVtab[2].pModule);\n              }\n            }\n            else {\nLAB_0013d062:\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\nLAB_0013d0c3:\n                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);\n                if (rc_2 == 0) {\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }\n              }\n              sqlite3_finalize(pStmt);\n              pStmt = (sqlite3_stmt *)0x0;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (sqlite3_stmt *)0x0;\n          local_114 = (sqlite3_stmt *)0x0;\n          psVar19 = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)0x0;\n        }\n        if ((char)pVtab[0x13].nRef != '\0') {\n          fts3UpdateDocTotals(&rc_2,(Fts3Table *)pVtab,(u32 *)local_114,(u32 *)local_108,\n                              (int)local_f0);\n        }\n        sqlite3_free(psVar19);\n        if ((pStmt != (sqlite3_stmt *)0x0) && (iVar8 = sqlite3_finalize(pStmt), rc_2 == 0)) {\n          rc_2 = iVar8;\n        }\n        local_f0 = (sqlite3_stmt *)rc_2;\n      }\n      else {\n        if (iVar8 != 0xf) {\n          if (6 < iVar8) {\n            iVar20 = sqlite3_strnicmp(pcVar9,"merge=",6);\n            if (iVar20 == 0) goto LAB_0013be74;\n            if (10 < iVar8) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar8 = sqlite3_strnicmp(pcVar9,"integrity-check",0xf);\n        if (iVar8 == 0) {\n          pAllLangid = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x1b,&pAllLangid,(sqlite3_value **)pRowid);\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x17].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x15].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar8 = sqlite3_step(pAllLangid);\n                psVar19 = pAllLangid;\n                if (iVar8 != 100) {\n                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);\n                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n                  iVar8 = (pVtab[3].pModule)->iVersion;\n                  pStmt_3 = (sqlite3_stmt *)0x0;\n                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n                  if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  sqlite3_finalize(pStmt_3);\n                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n                  local_f0 = (sqlite3_stmt *)0x7;\n                  goto LAB_0013ba71;\n                }\n                pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n                iVar32 = sqlite3VdbeIntValue(pMVar10);\n                uVar11 = (uint)iVar32;\n                iVar8 = 0x13c3a3;\n                columnMallocFailure(psVar19);\n              } while ((int)pVtab[0x15].pModule < 1);\n              local_114 = (sqlite3_stmt *)0x0;\n              local_110 = 0;\n              do {\n                rc_2 = 0;\n                local_64 = (Fts3Table *)0x0;\n                local_60 = 0;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                for (iVar20 = 0xe; iVar20 != 0; iVar20 = iVar20 + -1) {\n                  pFVar29->apSegment = (Fts3SegReader **)0x0;\n                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);\n                }\n                local_5c = 0x13;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                local_12c = (sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt);\n                if ((local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  iVar8 = 0x13c8ad;\n                  local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);\n                  pOVar5 = local_28;\n                  if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                psVar19 = pStmt;\n                if (0 < (int)local_54) {\n                  iVar20 = 0;\n                  pVVar12 = local_54;\n                  do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);\n                }\nLAB_0013c5e2:\n                if (psVar19 != (sqlite3_stmt *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                pcVar9 = local_48;\n                if (local_48 != (char *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                bVar30 = 0xfffffffe < local_114;\n                local_114 = (sqlite3_stmt *)((int)local_114 + 1);\n                local_110 = local_110 + (uint)bVar30;\n              } while ((int)local_114 < (int)pVtab[0x15].pModule);\n            } while (local_12c == (sqlite3_stmt *)0x0);\n            sqlite3_reset(pAllLangid);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n          if (iVar8 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar8 = sqlite3_strnicmp(pcVar9,"automerge=",10);\n          if (iVar8 != 0) goto LAB_0013ba5f;\n          rc_2 = 0;\n          pcVar21 = pcVar9 + 10;\n          pStmt = (sqlite3_stmt *)0x0;\n          cVar6 = pcVar9[10];\n          psVar38 = (sqlite3_module *)0x0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar21 = pcVar21 + 1;\n              psVar38 = (sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10);\n              cVar6 = *pcVar21;\n              if (9 < (byte)(cVar6 - 0x30U)) break;\n            } while ((int)psVar38 < 0xccccccb);\n            if ((psVar38 == (sqlite3_module *)0x1) || (0x10 < (int)psVar38)) {\n              pVtab[4].pModule = (sqlite3_module *)0x8;\n            }\n            else {\n              pVtab[4].pModule = psVar38;\n            }\n          }\n          else {\n            pVtab[4].pModule = (sqlite3_module *)0x0;\n          }\n          if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n            fts3DbExec(&rc_2,(sqlite3 *)pVtab[1].pModule,\n                       "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                       ,pVtab[1].nRef,pVtab[1].zErrMsg);\n            local_f0 = (sqlite3_stmt *)rc_2;\n            if (rc_2 != 0) goto LAB_0013c0e0;\n            *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n          }\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x17,&pStmt,(sqlite3_value **)pRowid);\n          rc_2 = (int)local_f0;\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pStmt,2,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pStmt,(int)pVtab[4].pModule,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_step(pStmt);\n            local_f0 = (sqlite3_stmt *)sqlite3_reset(pStmt);\n          }\n        }\n      }\nLAB_0013c0e0:\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n      goto LAB_0013ba71;\n    }" if (parenthesized_expression "((aType_23891[(*apVal)->flags & 0x1f] == '\x05') &&\n       (psVar7 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 2)],\n       aType_23891[psVar7->flags & 0x1f] != '\x05'))" ( (binary_expression "(aType_23891[(*apVal)->flags & 0x1f] == '\x05') &&\n       (psVar7 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 2)],\n       aType_23891[psVar7->flags & 0x1f] != '\x05')" (parenthesized_expression "(aType_23891[(*apVal)->flags & 0x1f] == '\x05')" ( (binary_expression "aType_23891[(*apVal)->flags & 0x1f] == '\x05'" (subscript_expression "aType_23891[(*apVal)->flags & 0x1f]" identifier [ (binary_expression "(*apVal)->flags & 0x1f" (field_expression "(*apVal)->flags" (parenthesized_expression "(*apVal)" ( (pointer_expression "*apVal" * identifier) )) -> field_identifier) & number_literal) ]) == (char_literal "'\x05'" ' escape_sequence ')) )) && (parenthesized_expression "(psVar7 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 2)],\n       aType_23891[psVar7->flags & 0x1f] != '\x05')" ( (comma_expression "psVar7 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 2)],\n       aType_23891[psVar7->flags & 0x1f] != '\x05'" (assignment_expression "psVar7 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 2)]" identifier = (subscript_expression "apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 2)]" identifier [ (cast_expression "(int)((int)&(pVtab[2].pModule)->iVersion + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&(pVtab[2].pModule)->iVersion + 2)" ( (binary_expression "(int)&(pVtab[2].pModule)->iVersion + 2" (cast_expression "(int)&(pVtab[2].pModule)->iVersion" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pVtab[2].pModule)->iVersion" & (field_expression "(pVtab[2].pModule)->iVersion" (parenthesized_expression "(pVtab[2].pModule)" ( (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier) )) -> field_identifier))) + number_literal) ))) ])) , (binary_expression "aType_23891[psVar7->flags & 0x1f] != '\x05'" (subscript_expression "aType_23891[psVar7->flags & 0x1f]" identifier [ (binary_expression "psVar7->flags & 0x1f" (field_expression "psVar7->flags" identifier -> field_identifier) & number_literal) ]) != (char_literal "'\x05'" ' escape_sequence '))) ))) )) (compound_statement "{\n      pcVar9 = (char *)sqlite3ValueText(psVar7,in_DL);\n      iVar8 = sqlite3ValueBytes(psVar7,enc);\n      if (pcVar9 == (char *)0x0) {\n        local_f0 = (sqlite3_stmt *)0x7;\n        pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n        goto LAB_0013ba71;\n      }\n      if (iVar8 == 8) {\n        iVar8 = sqlite3_strnicmp(pcVar9,"optimize",8);\n        if (iVar8 == 0) {\n          local_f0 = (sqlite3_stmt *)fts3DoOptimize((Fts3Table *)pVtab,0);\n          pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n        if (iVar8 == 0) {\nLAB_0013be74:\n          cVar6 = pcVar9[6];\n          pcVar9 = pcVar9 + 6;\n          iVar8 = 0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar9 = pcVar9 + 1;\n              iVar8 = cVar6 + -0x30 + iVar8 * 10;\n              cVar6 = *pcVar9;\n              if (9 < (byte)(cVar6 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar8 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar6 == ',') {\n              cVar6 = pcVar9[1];\n              if ((cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)) {\n                iVar20 = 0;\n                do {\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                } while (iVar20 < 0xccccccb);\n                if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;\n              }\n            }\n            else if (cVar6 == '\0') {\n              iVar20 = 8;\nLAB_0013bf06:\n              pStmt = (sqlite3_stmt *)0x0;\n              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }\n              else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }\n              sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);\n              pVtab[0x14].zErrMsg = (char *)0x0;\n              pBlob = (sqlite3_blob *)0x0;\n              local_f0 = pStmt;\n              goto LAB_0013ba71;\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (sqlite3_stmt *)&DAT_00000001;\n        pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n        goto LAB_0013ba71;\n      }\n      if (iVar8 == 7) {\n        iVar8 = sqlite3_strnicmp(pcVar9,"rebuild",7);\n        if (iVar8 != 0) goto LAB_0013be5a;\n        local_f0 = (sqlite3_stmt *)fts3DeleteAll((Fts3Table *)pVtab,0);\n        rc_2 = (int)local_f0;\n        if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n        pStmt = (sqlite3_stmt *)0x0;\n        pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n        if (pcVar9 == (char *)0x0) goto LAB_0013d10b;\n        rc_2 = sqlite3LockAndPrepare\n                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt,\n                          (sqlite3_stmt **)0x0,(char **)pRowid);\n        sqlite3_free(pcVar9);\n        if (rc_2 == 0) {\n          psVar38 = pVtab[2].pModule;\n          iVar8 = sqlite3_initialize();\n          if (iVar8 != 0) {\nLAB_0013d10b:\n            rc_2 = 7;\n            goto LAB_0013d116;\n          }\n          local_114 = (sqlite3_stmt *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid));\n          if (local_114 == (sqlite3_stmt *)0x0) goto LAB_0013d10b;\n          psVar19 = local_114;\n          memset(local_114,0,(int)((int)&psVar38->iVersion + 1) * 0xc);\n          iVar8 = (int)pVtab[2].pModule * 4 + 4;\n          local_114 = local_114 + iVar8;\n          local_108 = local_114 + iVar8;\n          local_f0 = (sqlite3_stmt *)0x0;\n          while ((rc_2 == 0 && (iVar8 = sqlite3_step(pStmt), psVar26 = pStmt, iVar8 == 100))) {\n            psVar38 = (sqlite3_module *)0x0;\n            iVar8 = extraout_EDX;\n            if (pVtab[3].zErrMsg != (char *)0x0) {\n              pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n              iVar32 = sqlite3VdbeIntValue(pMVar10);\n              psVar38 = (sqlite3_module *)iVar32;\n              columnMallocFailure(psVar26);\n              iVar8 = extraout_EDX_00;\n            }\n            sVar34 = sqlite3_column_int64(pStmt,iVar8);\n            iVar20 = (int)((ulonglong)sVar34 >> 0x20);\n            lVar4._0_4_ = pVtab[0x16].nRef;\n            lVar4._4_4_ = pVtab[0x16].zErrMsg;\n            uVar11 = (uint)((uint)sVar34 < (uint)pVtab[0x16].nRef);\n            iVar8 = iVar20 - (int)pVtab[0x16].zErrMsg;\n            if (((((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0) &&\n                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 )) && ((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n               (rc_2 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), rc_2 == 0)) {\n              pVtab[0x16].nRef = (int)sVar34;\n              pVtab[0x16].zErrMsg = (char *)(int)((ulonglong)sVar34 >> 0x20);\n              pVtab[0x17].nRef = 0;\n              pVtab[0x17].pModule = psVar38;\n              rc_2 = 0;\n            }\n            memset(psVar19,0,(int)pVtab[2].pModule * 4 + 4);\n            if (rc_2 == 0) {\n              psVar18 = pVtab[2].pModule;\n              if (0 < (int)psVar18) {\n                psVar26 = (sqlite3_stmt *)0x0;\n                do {\n                  psVar36 = pStmt;\n                  psVar1 = psVar26 + 1;\n                  if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }\n                  psVar26 = psVar1;\n                } while ((int)psVar1 < (int)psVar18);\n              }\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (sqlite3_stmt *)((int)local_f0 + 1);\n              if (-1 < (int)psVar18) {\n                iVar8 = 0;\n                do {\n                  *(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);\n                  iVar8 = iVar8 + 1;\n                } while (iVar8 <= (int)pVtab[2].pModule);\n              }\n            }\n            else {\nLAB_0013d062:\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\nLAB_0013d0c3:\n                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);\n                if (rc_2 == 0) {\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }\n              }\n              sqlite3_finalize(pStmt);\n              pStmt = (sqlite3_stmt *)0x0;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (sqlite3_stmt *)0x0;\n          local_114 = (sqlite3_stmt *)0x0;\n          psVar19 = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)0x0;\n        }\n        if ((char)pVtab[0x13].nRef != '\0') {\n          fts3UpdateDocTotals(&rc_2,(Fts3Table *)pVtab,(u32 *)local_114,(u32 *)local_108,\n                              (int)local_f0);\n        }\n        sqlite3_free(psVar19);\n        if ((pStmt != (sqlite3_stmt *)0x0) && (iVar8 = sqlite3_finalize(pStmt), rc_2 == 0)) {\n          rc_2 = iVar8;\n        }\n        local_f0 = (sqlite3_stmt *)rc_2;\n      }\n      else {\n        if (iVar8 != 0xf) {\n          if (6 < iVar8) {\n            iVar20 = sqlite3_strnicmp(pcVar9,"merge=",6);\n            if (iVar20 == 0) goto LAB_0013be74;\n            if (10 < iVar8) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar8 = sqlite3_strnicmp(pcVar9,"integrity-check",0xf);\n        if (iVar8 == 0) {\n          pAllLangid = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x1b,&pAllLangid,(sqlite3_value **)pRowid);\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x17].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x15].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar8 = sqlite3_step(pAllLangid);\n                psVar19 = pAllLangid;\n                if (iVar8 != 100) {\n                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);\n                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n                  iVar8 = (pVtab[3].pModule)->iVersion;\n                  pStmt_3 = (sqlite3_stmt *)0x0;\n                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n                  if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  sqlite3_finalize(pStmt_3);\n                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n                  local_f0 = (sqlite3_stmt *)0x7;\n                  goto LAB_0013ba71;\n                }\n                pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n                iVar32 = sqlite3VdbeIntValue(pMVar10);\n                uVar11 = (uint)iVar32;\n                iVar8 = 0x13c3a3;\n                columnMallocFailure(psVar19);\n              } while ((int)pVtab[0x15].pModule < 1);\n              local_114 = (sqlite3_stmt *)0x0;\n              local_110 = 0;\n              do {\n                rc_2 = 0;\n                local_64 = (Fts3Table *)0x0;\n                local_60 = 0;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                for (iVar20 = 0xe; iVar20 != 0; iVar20 = iVar20 + -1) {\n                  pFVar29->apSegment = (Fts3SegReader **)0x0;\n                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);\n                }\n                local_5c = 0x13;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                local_12c = (sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt);\n                if ((local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  iVar8 = 0x13c8ad;\n                  local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);\n                  pOVar5 = local_28;\n                  if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                psVar19 = pStmt;\n                if (0 < (int)local_54) {\n                  iVar20 = 0;\n                  pVVar12 = local_54;\n                  do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);\n                }\nLAB_0013c5e2:\n                if (psVar19 != (sqlite3_stmt *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                pcVar9 = local_48;\n                if (local_48 != (char *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                bVar30 = 0xfffffffe < local_114;\n                local_114 = (sqlite3_stmt *)((int)local_114 + 1);\n                local_110 = local_110 + (uint)bVar30;\n              } while ((int)local_114 < (int)pVtab[0x15].pModule);\n            } while (local_12c == (sqlite3_stmt *)0x0);\n            sqlite3_reset(pAllLangid);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n          if (iVar8 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar8 = sqlite3_strnicmp(pcVar9,"automerge=",10);\n          if (iVar8 != 0) goto LAB_0013ba5f;\n          rc_2 = 0;\n          pcVar21 = pcVar9 + 10;\n          pStmt = (sqlite3_stmt *)0x0;\n          cVar6 = pcVar9[10];\n          psVar38 = (sqlite3_module *)0x0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar21 = pcVar21 + 1;\n              psVar38 = (sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10);\n              cVar6 = *pcVar21;\n              if (9 < (byte)(cVar6 - 0x30U)) break;\n            } while ((int)psVar38 < 0xccccccb);\n            if ((psVar38 == (sqlite3_module *)0x1) || (0x10 < (int)psVar38)) {\n              pVtab[4].pModule = (sqlite3_module *)0x8;\n            }\n            else {\n              pVtab[4].pModule = psVar38;\n            }\n          }\n          else {\n            pVtab[4].pModule = (sqlite3_module *)0x0;\n          }\n          if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n            fts3DbExec(&rc_2,(sqlite3 *)pVtab[1].pModule,\n                       "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                       ,pVtab[1].nRef,pVtab[1].zErrMsg);\n            local_f0 = (sqlite3_stmt *)rc_2;\n            if (rc_2 != 0) goto LAB_0013c0e0;\n            *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n          }\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x17,&pStmt,(sqlite3_value **)pRowid);\n          rc_2 = (int)local_f0;\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pStmt,2,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pStmt,(int)pVtab[4].pModule,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_step(pStmt);\n            local_f0 = (sqlite3_stmt *)sqlite3_reset(pStmt);\n          }\n        }\n      }\nLAB_0013c0e0:\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n      goto LAB_0013ba71;\n    }" { (expression_statement "pcVar9 = (char *)sqlite3ValueText(psVar7,in_DL);" (assignment_expression "pcVar9 = (char *)sqlite3ValueText(psVar7,in_DL)" identifier = (cast_expression "(char *)sqlite3ValueText(psVar7,in_DL)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3ValueText(psVar7,in_DL)" identifier (argument_list "(psVar7,in_DL)" ( identifier , identifier ))))) ;) (expression_statement "iVar8 = sqlite3ValueBytes(psVar7,enc);" (assignment_expression "iVar8 = sqlite3ValueBytes(psVar7,enc)" identifier = (call_expression "sqlite3ValueBytes(psVar7,enc)" identifier (argument_list "(psVar7,enc)" ( identifier , identifier )))) ;) (if_statement "if (pcVar9 == (char *)0x0) {\n        local_f0 = (sqlite3_stmt *)0x7;\n        pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n        goto LAB_0013ba71;\n      }" if (parenthesized_expression "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_f0 = (sqlite3_stmt *)0x7;\n        pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n        goto LAB_0013ba71;\n      }" { (expression_statement "local_f0 = (sqlite3_stmt *)0x7;" (assignment_expression "local_f0 = (sqlite3_stmt *)0x7" identifier = (cast_expression "(sqlite3_stmt *)0x7" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;" (assignment_expression "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg" identifier = (cast_expression "(sqlite3_blob *)pVtab[0x14].zErrMsg" ( (type_descriptor "sqlite3_blob *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVtab[0x14].zErrMsg" (subscript_expression "pVtab[0x14]" identifier [ number_literal ]) . field_identifier))) ;) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) })) (if_statement "if (iVar8 == 8) {\n        iVar8 = sqlite3_strnicmp(pcVar9,"optimize",8);\n        if (iVar8 == 0) {\n          local_f0 = (sqlite3_stmt *)fts3DoOptimize((Fts3Table *)pVtab,0);\n          pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n        if (iVar8 == 0) {\nLAB_0013be74:\n          cVar6 = pcVar9[6];\n          pcVar9 = pcVar9 + 6;\n          iVar8 = 0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar9 = pcVar9 + 1;\n              iVar8 = cVar6 + -0x30 + iVar8 * 10;\n              cVar6 = *pcVar9;\n              if (9 < (byte)(cVar6 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar8 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar6 == ',') {\n              cVar6 = pcVar9[1];\n              if ((cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)) {\n                iVar20 = 0;\n                do {\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                } while (iVar20 < 0xccccccb);\n                if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;\n              }\n            }\n            else if (cVar6 == '\0') {\n              iVar20 = 8;\nLAB_0013bf06:\n              pStmt = (sqlite3_stmt *)0x0;\n              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }\n              else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }\n              sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);\n              pVtab[0x14].zErrMsg = (char *)0x0;\n              pBlob = (sqlite3_blob *)0x0;\n              local_f0 = pStmt;\n              goto LAB_0013ba71;\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (sqlite3_stmt *)&DAT_00000001;\n        pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n        goto LAB_0013ba71;\n      }" if (parenthesized_expression "(iVar8 == 8)" ( (binary_expression "iVar8 == 8" identifier == number_literal) )) (compound_statement "{\n        iVar8 = sqlite3_strnicmp(pcVar9,"optimize",8);\n        if (iVar8 == 0) {\n          local_f0 = (sqlite3_stmt *)fts3DoOptimize((Fts3Table *)pVtab,0);\n          pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n        if (iVar8 == 0) {\nLAB_0013be74:\n          cVar6 = pcVar9[6];\n          pcVar9 = pcVar9 + 6;\n          iVar8 = 0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar9 = pcVar9 + 1;\n              iVar8 = cVar6 + -0x30 + iVar8 * 10;\n              cVar6 = *pcVar9;\n              if (9 < (byte)(cVar6 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar8 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar6 == ',') {\n              cVar6 = pcVar9[1];\n              if ((cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)) {\n                iVar20 = 0;\n                do {\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                } while (iVar20 < 0xccccccb);\n                if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;\n              }\n            }\n            else if (cVar6 == '\0') {\n              iVar20 = 8;\nLAB_0013bf06:\n              pStmt = (sqlite3_stmt *)0x0;\n              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }\n              else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }\n              sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);\n              pVtab[0x14].zErrMsg = (char *)0x0;\n              pBlob = (sqlite3_blob *)0x0;\n              local_f0 = pStmt;\n              goto LAB_0013ba71;\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (sqlite3_stmt *)&DAT_00000001;\n        pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n        goto LAB_0013ba71;\n      }" { (expression_statement "iVar8 = sqlite3_strnicmp(pcVar9,"optimize",8);" (assignment_expression "iVar8 = sqlite3_strnicmp(pcVar9,"optimize",8)" identifier = (call_expression "sqlite3_strnicmp(pcVar9,"optimize",8)" identifier (argument_list "(pcVar9,"optimize",8)" ( identifier , (string_literal ""optimize"" " string_content ") , number_literal )))) ;) (if_statement "if (iVar8 == 0) {\n          local_f0 = (sqlite3_stmt *)fts3DoOptimize((Fts3Table *)pVtab,0);\n          pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n          goto LAB_0013ba71;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          local_f0 = (sqlite3_stmt *)fts3DoOptimize((Fts3Table *)pVtab,0);\n          pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n          goto LAB_0013ba71;\n        }" { (expression_statement "local_f0 = (sqlite3_stmt *)fts3DoOptimize((Fts3Table *)pVtab,0);" (assignment_expression "local_f0 = (sqlite3_stmt *)fts3DoOptimize((Fts3Table *)pVtab,0)" identifier = (cast_expression "(sqlite3_stmt *)fts3DoOptimize((Fts3Table *)pVtab,0)" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "fts3DoOptimize((Fts3Table *)pVtab,0)" identifier (argument_list "((Fts3Table *)pVtab,0)" ( (cast_expression "(Fts3Table *)pVtab" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))))) ;) (expression_statement "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;" (assignment_expression "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg" identifier = (cast_expression "(sqlite3_blob *)pVtab[0x14].zErrMsg" ( (type_descriptor "sqlite3_blob *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVtab[0x14].zErrMsg" (subscript_expression "pVtab[0x14]" identifier [ number_literal ]) . field_identifier))) ;) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) })) (labeled_statement "LAB_0013be5a:\n        iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);" statement_identifier : (expression_statement "iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);" (assignment_expression "iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6)" identifier = (call_expression "sqlite3_strnicmp(pcVar9,"merge=",6)" identifier (argument_list "(pcVar9,"merge=",6)" ( identifier , (string_literal ""merge="" " string_content ") , number_literal )))) ;)) (if_statement "if (iVar8 == 0) {\nLAB_0013be74:\n          cVar6 = pcVar9[6];\n          pcVar9 = pcVar9 + 6;\n          iVar8 = 0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar9 = pcVar9 + 1;\n              iVar8 = cVar6 + -0x30 + iVar8 * 10;\n              cVar6 = *pcVar9;\n              if (9 < (byte)(cVar6 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar8 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar6 == ',') {\n              cVar6 = pcVar9[1];\n              if ((cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)) {\n                iVar20 = 0;\n                do {\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                } while (iVar20 < 0xccccccb);\n                if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;\n              }\n            }\n            else if (cVar6 == '\0') {\n              iVar20 = 8;\nLAB_0013bf06:\n              pStmt = (sqlite3_stmt *)0x0;\n              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }\n              else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }\n              sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);\n              pVtab[0x14].zErrMsg = (char *)0x0;\n              pBlob = (sqlite3_blob *)0x0;\n              local_f0 = pStmt;\n              goto LAB_0013ba71;\n            }\n          }\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0013be74:\n          cVar6 = pcVar9[6];\n          pcVar9 = pcVar9 + 6;\n          iVar8 = 0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar9 = pcVar9 + 1;\n              iVar8 = cVar6 + -0x30 + iVar8 * 10;\n              cVar6 = *pcVar9;\n              if (9 < (byte)(cVar6 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar8 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar6 == ',') {\n              cVar6 = pcVar9[1];\n              if ((cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)) {\n                iVar20 = 0;\n                do {\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                } while (iVar20 < 0xccccccb);\n                if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;\n              }\n            }\n            else if (cVar6 == '\0') {\n              iVar20 = 8;\nLAB_0013bf06:\n              pStmt = (sqlite3_stmt *)0x0;\n              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }\n              else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }\n              sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);\n              pVtab[0x14].zErrMsg = (char *)0x0;\n              pBlob = (sqlite3_blob *)0x0;\n              local_f0 = pStmt;\n              goto LAB_0013ba71;\n            }\n          }\n        }" { (labeled_statement "LAB_0013be74:\n          cVar6 = pcVar9[6];" statement_identifier : (expression_statement "cVar6 = pcVar9[6];" (assignment_expression "cVar6 = pcVar9[6]" identifier = (subscript_expression "pcVar9[6]" identifier [ number_literal ])) ;)) (expression_statement "pcVar9 = pcVar9 + 6;" (assignment_expression "pcVar9 = pcVar9 + 6" identifier = (binary_expression "pcVar9 + 6" identifier + number_literal)) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar9 = pcVar9 + 1;\n              iVar8 = cVar6 + -0x30 + iVar8 * 10;\n              cVar6 = *pcVar9;\n              if (9 < (byte)(cVar6 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar8 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar6 == ',') {\n              cVar6 = pcVar9[1];\n              if ((cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)) {\n                iVar20 = 0;\n                do {\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                } while (iVar20 < 0xccccccb);\n                if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;\n              }\n            }\n            else if (cVar6 == '\0') {\n              iVar20 = 8;\nLAB_0013bf06:\n              pStmt = (sqlite3_stmt *)0x0;\n              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }\n              else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }\n              sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);\n              pVtab[0x14].zErrMsg = (char *)0x0;\n              pBlob = (sqlite3_blob *)0x0;\n              local_f0 = pStmt;\n              goto LAB_0013ba71;\n            }\n          }" if (parenthesized_expression "((byte)(cVar6 - 0x30U) < 10)" ( (binary_expression "(byte)(cVar6 - 0x30U) < 10" (call_expression "(byte)(cVar6 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar6 - 0x30U)" ( (binary_expression "cVar6 - 0x30U" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n            do {\n              pcVar9 = pcVar9 + 1;\n              iVar8 = cVar6 + -0x30 + iVar8 * 10;\n              cVar6 = *pcVar9;\n              if (9 < (byte)(cVar6 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar8 < 0xccccccb);\n          }" { (do_statement "do {\n              pcVar9 = pcVar9 + 1;\n              iVar8 = cVar6 + -0x30 + iVar8 * 10;\n              cVar6 = *pcVar9;\n              if (9 < (byte)(cVar6 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar8 < 0xccccccb);" do (compound_statement "{\n              pcVar9 = pcVar9 + 1;\n              iVar8 = cVar6 + -0x30 + iVar8 * 10;\n              cVar6 = *pcVar9;\n              if (9 < (byte)(cVar6 - 0x30U)) goto LAB_0013beb1;\n            }" { (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = cVar6 + -0x30 + iVar8 * 10;" (assignment_expression "iVar8 = cVar6 + -0x30 + iVar8 * 10" identifier = (binary_expression "cVar6 + -0x30 + iVar8 * 10" (binary_expression "cVar6 + -0x30" identifier + number_literal) + (binary_expression "iVar8 * 10" identifier * number_literal))) ;) (expression_statement "cVar6 = *pcVar9;" (assignment_expression "cVar6 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (if_statement "if (9 < (byte)(cVar6 - 0x30U)) goto LAB_0013beb1;" if (parenthesized_expression "(9 < (byte)(cVar6 - 0x30U))" ( (binary_expression "9 < (byte)(cVar6 - 0x30U)" number_literal < (call_expression "(byte)(cVar6 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar6 - 0x30U)" ( (binary_expression "cVar6 - 0x30U" identifier - number_literal) )))) )) (goto_statement "goto LAB_0013beb1;" goto statement_identifier ;)) }) while (parenthesized_expression "(iVar8 < 0xccccccb)" ( (binary_expression "iVar8 < 0xccccccb" identifier < number_literal) )) ;) }) (else_clause "else {\nLAB_0013beb1:\n            if (cVar6 == ',') {\n              cVar6 = pcVar9[1];\n              if ((cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)) {\n                iVar20 = 0;\n                do {\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                } while (iVar20 < 0xccccccb);\n                if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;\n              }\n            }\n            else if (cVar6 == '\0') {\n              iVar20 = 8;\nLAB_0013bf06:\n              pStmt = (sqlite3_stmt *)0x0;\n              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }\n              else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }\n              sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);\n              pVtab[0x14].zErrMsg = (char *)0x0;\n              pBlob = (sqlite3_blob *)0x0;\n              local_f0 = pStmt;\n              goto LAB_0013ba71;\n            }\n          }" else (compound_statement "{\nLAB_0013beb1:\n            if (cVar6 == ',') {\n              cVar6 = pcVar9[1];\n              if ((cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)) {\n                iVar20 = 0;\n                do {\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                } while (iVar20 < 0xccccccb);\n                if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;\n              }\n            }\n            else if (cVar6 == '\0') {\n              iVar20 = 8;\nLAB_0013bf06:\n              pStmt = (sqlite3_stmt *)0x0;\n              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }\n              else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }\n              sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);\n              pVtab[0x14].zErrMsg = (char *)0x0;\n              pBlob = (sqlite3_blob *)0x0;\n              local_f0 = pStmt;\n              goto LAB_0013ba71;\n            }\n          }" { (labeled_statement "LAB_0013beb1:\n            if (cVar6 == ',') {\n              cVar6 = pcVar9[1];\n              if ((cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)) {\n                iVar20 = 0;\n                do {\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                } while (iVar20 < 0xccccccb);\n                if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;\n              }\n            }\n            else if (cVar6 == '\0') {\n              iVar20 = 8;\nLAB_0013bf06:\n              pStmt = (sqlite3_stmt *)0x0;\n              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }\n              else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }\n              sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);\n              pVtab[0x14].zErrMsg = (char *)0x0;\n              pBlob = (sqlite3_blob *)0x0;\n              local_f0 = pStmt;\n              goto LAB_0013ba71;\n            }" statement_identifier : (if_statement "if (cVar6 == ',') {\n              cVar6 = pcVar9[1];\n              if ((cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)) {\n                iVar20 = 0;\n                do {\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                } while (iVar20 < 0xccccccb);\n                if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;\n              }\n            }\n            else if (cVar6 == '\0') {\n              iVar20 = 8;\nLAB_0013bf06:\n              pStmt = (sqlite3_stmt *)0x0;\n              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }\n              else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }\n              sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);\n              pVtab[0x14].zErrMsg = (char *)0x0;\n              pBlob = (sqlite3_blob *)0x0;\n              local_f0 = pStmt;\n              goto LAB_0013ba71;\n            }" if (parenthesized_expression "(cVar6 == ',')" ( (binary_expression "cVar6 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n              cVar6 = pcVar9[1];\n              if ((cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)) {\n                iVar20 = 0;\n                do {\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                } while (iVar20 < 0xccccccb);\n                if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;\n              }\n            }" { (expression_statement "cVar6 = pcVar9[1];" (assignment_expression "cVar6 = pcVar9[1]" identifier = (subscript_expression "pcVar9[1]" identifier [ number_literal ])) ;) (if_statement "if ((cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)) {\n                iVar20 = 0;\n                do {\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                } while (iVar20 < 0xccccccb);\n                if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;\n              }" if (parenthesized_expression "((cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10))" ( (binary_expression "(cVar6 != '\0') && (pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)" (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10)" ( (comma_expression "pcVar9 = pcVar9 + 1, (byte)(cVar6 - 0x30U) < 10" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) , (binary_expression "(byte)(cVar6 - 0x30U) < 10" (call_expression "(byte)(cVar6 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar6 - 0x30U)" ( (binary_expression "cVar6 - 0x30U" identifier - number_literal) ))) < number_literal)) ))) )) (compound_statement "{\n                iVar20 = 0;\n                do {\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                } while (iVar20 < 0xccccccb);\n                if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;\n              }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (do_statement "do {\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                } while (iVar20 < 0xccccccb);" do (compound_statement "{\n                  pcVar9 = pcVar9 + 1;\n                  iVar20 = cVar6 + -0x30 + iVar20 * 10;\n                  cVar6 = *pcVar9;\n                  if (9 < (byte)(cVar6 - 0x30U)) break;\n                }" { (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar20 = cVar6 + -0x30 + iVar20 * 10;" (assignment_expression "iVar20 = cVar6 + -0x30 + iVar20 * 10" identifier = (binary_expression "cVar6 + -0x30 + iVar20 * 10" (binary_expression "cVar6 + -0x30" identifier + number_literal) + (binary_expression "iVar20 * 10" identifier * number_literal))) ;) (expression_statement "cVar6 = *pcVar9;" (assignment_expression "cVar6 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (if_statement "if (9 < (byte)(cVar6 - 0x30U)) break;" if (parenthesized_expression "(9 < (byte)(cVar6 - 0x30U))" ( (binary_expression "9 < (byte)(cVar6 - 0x30U)" number_literal < (call_expression "(byte)(cVar6 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar6 - 0x30U)" ( (binary_expression "cVar6 - 0x30U" identifier - number_literal) )))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(iVar20 < 0xccccccb)" ( (binary_expression "iVar20 < 0xccccccb" identifier < number_literal) )) ;) (if_statement "if ((1 < iVar20) && (cVar6 == '\0')) goto LAB_0013bf06;" if (parenthesized_expression "((1 < iVar20) && (cVar6 == '\0'))" ( (binary_expression "(1 < iVar20) && (cVar6 == '\0')" (parenthesized_expression "(1 < iVar20)" ( (binary_expression "1 < iVar20" number_literal < identifier) )) && (parenthesized_expression "(cVar6 == '\0')" ( (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0013bf06;" goto statement_identifier ;)) })) }) (else_clause "else if (cVar6 == '\0') {\n              iVar20 = 8;\nLAB_0013bf06:\n              pStmt = (sqlite3_stmt *)0x0;\n              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }\n              else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }\n              sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);\n              pVtab[0x14].zErrMsg = (char *)0x0;\n              pBlob = (sqlite3_blob *)0x0;\n              local_f0 = pStmt;\n              goto LAB_0013ba71;\n            }" else (if_statement "if (cVar6 == '\0') {\n              iVar20 = 8;\nLAB_0013bf06:\n              pStmt = (sqlite3_stmt *)0x0;\n              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }\n              else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }\n              sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);\n              pVtab[0x14].zErrMsg = (char *)0x0;\n              pBlob = (sqlite3_blob *)0x0;\n              local_f0 = pStmt;\n              goto LAB_0013ba71;\n            }" if (parenthesized_expression "(cVar6 == '\0')" ( (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar20 = 8;\nLAB_0013bf06:\n              pStmt = (sqlite3_stmt *)0x0;\n              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }\n              else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }\n              sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);\n              pVtab[0x14].zErrMsg = (char *)0x0;\n              pBlob = (sqlite3_blob *)0x0;\n              local_f0 = pStmt;\n              goto LAB_0013ba71;\n            }" { (expression_statement "iVar20 = 8;" (assignment_expression "iVar20 = 8" identifier = number_literal) ;) (labeled_statement "LAB_0013bf06:\n              pStmt = (sqlite3_stmt *)0x0;" statement_identifier : (expression_statement "pStmt = (sqlite3_stmt *)0x0;" (assignment_expression "pStmt = (sqlite3_stmt *)0x0" identifier = (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }\n              else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }" if (parenthesized_expression "(*(char *)((int)&pVtab[0x13].nRef + 1) == '\0')" ( (binary_expression "*(char *)((int)&pVtab[0x13].nRef + 1) == '\0'" (pointer_expression "*(char *)((int)&pVtab[0x13].nRef + 1)" * (cast_expression "(char *)((int)&pVtab[0x13].nRef + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pVtab[0x13].nRef + 1)" ( (binary_expression "(int)&pVtab[0x13].nRef + 1" (cast_expression "(int)&pVtab[0x13].nRef" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pVtab[0x13].nRef" & (field_expression "pVtab[0x13].nRef" (subscript_expression "pVtab[0x13]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);\n                if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }\n              }" { (expression_statement "fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg);" (call_expression "fts3DbExec((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg)" identifier (argument_list "((int *)&pStmt,(sqlite3 *)pVtab[1].pModule,\n                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                           ,pVtab[1].nRef,pVtab[1].zErrMsg)" ( (cast_expression "(int *)&pStmt" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pStmt" & identifier)) , (cast_expression "(sqlite3 *)pVtab[1].pModule" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVtab[1].pModule" (subscript_expression "pVtab[1]" identifier [ number_literal ]) . field_identifier)) , (string_literal ""CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"" " string_content escape_sequence string_content escape_sequence string_content ") , (field_expression "pVtab[1].nRef" (subscript_expression "pVtab[1]" identifier [ number_literal ]) . field_identifier) , (field_expression "pVtab[1].zErrMsg" (subscript_expression "pVtab[1]" identifier [ number_literal ]) . field_identifier) ))) ;) (if_statement "if (pStmt == (sqlite3_stmt *)0x0) {\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }" if (parenthesized_expression "(pStmt == (sqlite3_stmt *)0x0)" ( (binary_expression "pStmt == (sqlite3_stmt *)0x0" identifier == (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n                  goto LAB_0013bf22;\n                }" { (expression_statement "*(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;" (assignment_expression "*(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1" (pointer_expression "*(undefined1 *)((int)&pVtab[0x13].nRef + 1)" * (cast_expression "(undefined1 *)((int)&pVtab[0x13].nRef + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pVtab[0x13].nRef + 1)" ( (binary_expression "(int)&pVtab[0x13].nRef + 1" (cast_expression "(int)&pVtab[0x13].nRef" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pVtab[0x13].nRef" & (field_expression "pVtab[0x13].nRef" (subscript_expression "pVtab[0x13]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0013bf22;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }" else (compound_statement "{\nLAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);\n              }" { (labeled_statement "LAB_0013bf22:\n                pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);" statement_identifier : (expression_statement "pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20);" (assignment_expression "pStmt = (sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20)" identifier = (cast_expression "(sqlite3_stmt *)sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20)" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3Fts3Incrmerge((Fts3Table *)pVtab,iVar8,iVar20)" identifier (argument_list "((Fts3Table *)pVtab,iVar8,iVar20)" ( (cast_expression "(Fts3Table *)pVtab" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier ))))) ;)) }))) (expression_statement "sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg);" (call_expression "sqlite3_blob_close((sqlite3_blob *)pVtab[0x14].zErrMsg)" identifier (argument_list "((sqlite3_blob *)pVtab[0x14].zErrMsg)" ( (cast_expression "(sqlite3_blob *)pVtab[0x14].zErrMsg" ( (type_descriptor "sqlite3_blob *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVtab[0x14].zErrMsg" (subscript_expression "pVtab[0x14]" identifier [ number_literal ]) . field_identifier)) ))) ;) (expression_statement "pVtab[0x14].zErrMsg = (char *)0x0;" (assignment_expression "pVtab[0x14].zErrMsg = (char *)0x0" (field_expression "pVtab[0x14].zErrMsg" (subscript_expression "pVtab[0x14]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pBlob = (sqlite3_blob *)0x0;" (assignment_expression "pBlob = (sqlite3_blob *)0x0" identifier = (cast_expression "(sqlite3_blob *)0x0" ( (type_descriptor "sqlite3_blob *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = pStmt;" (assignment_expression "local_f0 = pStmt" identifier = identifier) ;) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) }))))) }))) })) (labeled_statement "LAB_0013ba5f:\n        local_f0 = (sqlite3_stmt *)&DAT_00000001;" statement_identifier : (expression_statement "local_f0 = (sqlite3_stmt *)&DAT_00000001;" (assignment_expression "local_f0 = (sqlite3_stmt *)&DAT_00000001" identifier = (cast_expression "(sqlite3_stmt *)&DAT_00000001" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;)) (expression_statement "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;" (assignment_expression "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg" identifier = (cast_expression "(sqlite3_blob *)pVtab[0x14].zErrMsg" ( (type_descriptor "sqlite3_blob *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVtab[0x14].zErrMsg" (subscript_expression "pVtab[0x14]" identifier [ number_literal ]) . field_identifier))) ;) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) })) (if_statement "if (iVar8 == 7) {\n        iVar8 = sqlite3_strnicmp(pcVar9,"rebuild",7);\n        if (iVar8 != 0) goto LAB_0013be5a;\n        local_f0 = (sqlite3_stmt *)fts3DeleteAll((Fts3Table *)pVtab,0);\n        rc_2 = (int)local_f0;\n        if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n        pStmt = (sqlite3_stmt *)0x0;\n        pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n        if (pcVar9 == (char *)0x0) goto LAB_0013d10b;\n        rc_2 = sqlite3LockAndPrepare\n                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt,\n                          (sqlite3_stmt **)0x0,(char **)pRowid);\n        sqlite3_free(pcVar9);\n        if (rc_2 == 0) {\n          psVar38 = pVtab[2].pModule;\n          iVar8 = sqlite3_initialize();\n          if (iVar8 != 0) {\nLAB_0013d10b:\n            rc_2 = 7;\n            goto LAB_0013d116;\n          }\n          local_114 = (sqlite3_stmt *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid));\n          if (local_114 == (sqlite3_stmt *)0x0) goto LAB_0013d10b;\n          psVar19 = local_114;\n          memset(local_114,0,(int)((int)&psVar38->iVersion + 1) * 0xc);\n          iVar8 = (int)pVtab[2].pModule * 4 + 4;\n          local_114 = local_114 + iVar8;\n          local_108 = local_114 + iVar8;\n          local_f0 = (sqlite3_stmt *)0x0;\n          while ((rc_2 == 0 && (iVar8 = sqlite3_step(pStmt), psVar26 = pStmt, iVar8 == 100))) {\n            psVar38 = (sqlite3_module *)0x0;\n            iVar8 = extraout_EDX;\n            if (pVtab[3].zErrMsg != (char *)0x0) {\n              pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n              iVar32 = sqlite3VdbeIntValue(pMVar10);\n              psVar38 = (sqlite3_module *)iVar32;\n              columnMallocFailure(psVar26);\n              iVar8 = extraout_EDX_00;\n            }\n            sVar34 = sqlite3_column_int64(pStmt,iVar8);\n            iVar20 = (int)((ulonglong)sVar34 >> 0x20);\n            lVar4._0_4_ = pVtab[0x16].nRef;\n            lVar4._4_4_ = pVtab[0x16].zErrMsg;\n            uVar11 = (uint)((uint)sVar34 < (uint)pVtab[0x16].nRef);\n            iVar8 = iVar20 - (int)pVtab[0x16].zErrMsg;\n            if (((((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0) &&\n                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 )) && ((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n               (rc_2 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), rc_2 == 0)) {\n              pVtab[0x16].nRef = (int)sVar34;\n              pVtab[0x16].zErrMsg = (char *)(int)((ulonglong)sVar34 >> 0x20);\n              pVtab[0x17].nRef = 0;\n              pVtab[0x17].pModule = psVar38;\n              rc_2 = 0;\n            }\n            memset(psVar19,0,(int)pVtab[2].pModule * 4 + 4);\n            if (rc_2 == 0) {\n              psVar18 = pVtab[2].pModule;\n              if (0 < (int)psVar18) {\n                psVar26 = (sqlite3_stmt *)0x0;\n                do {\n                  psVar36 = pStmt;\n                  psVar1 = psVar26 + 1;\n                  if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }\n                  psVar26 = psVar1;\n                } while ((int)psVar1 < (int)psVar18);\n              }\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (sqlite3_stmt *)((int)local_f0 + 1);\n              if (-1 < (int)psVar18) {\n                iVar8 = 0;\n                do {\n                  *(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);\n                  iVar8 = iVar8 + 1;\n                } while (iVar8 <= (int)pVtab[2].pModule);\n              }\n            }\n            else {\nLAB_0013d062:\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\nLAB_0013d0c3:\n                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);\n                if (rc_2 == 0) {\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }\n              }\n              sqlite3_finalize(pStmt);\n              pStmt = (sqlite3_stmt *)0x0;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (sqlite3_stmt *)0x0;\n          local_114 = (sqlite3_stmt *)0x0;\n          psVar19 = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)0x0;\n        }\n        if ((char)pVtab[0x13].nRef != '\0') {\n          fts3UpdateDocTotals(&rc_2,(Fts3Table *)pVtab,(u32 *)local_114,(u32 *)local_108,\n                              (int)local_f0);\n        }\n        sqlite3_free(psVar19);\n        if ((pStmt != (sqlite3_stmt *)0x0) && (iVar8 = sqlite3_finalize(pStmt), rc_2 == 0)) {\n          rc_2 = iVar8;\n        }\n        local_f0 = (sqlite3_stmt *)rc_2;\n      }\n      else {\n        if (iVar8 != 0xf) {\n          if (6 < iVar8) {\n            iVar20 = sqlite3_strnicmp(pcVar9,"merge=",6);\n            if (iVar20 == 0) goto LAB_0013be74;\n            if (10 < iVar8) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar8 = sqlite3_strnicmp(pcVar9,"integrity-check",0xf);\n        if (iVar8 == 0) {\n          pAllLangid = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x1b,&pAllLangid,(sqlite3_value **)pRowid);\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x17].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x15].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar8 = sqlite3_step(pAllLangid);\n                psVar19 = pAllLangid;\n                if (iVar8 != 100) {\n                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);\n                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n                  iVar8 = (pVtab[3].pModule)->iVersion;\n                  pStmt_3 = (sqlite3_stmt *)0x0;\n                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n                  if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  sqlite3_finalize(pStmt_3);\n                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n                  local_f0 = (sqlite3_stmt *)0x7;\n                  goto LAB_0013ba71;\n                }\n                pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n                iVar32 = sqlite3VdbeIntValue(pMVar10);\n                uVar11 = (uint)iVar32;\n                iVar8 = 0x13c3a3;\n                columnMallocFailure(psVar19);\n              } while ((int)pVtab[0x15].pModule < 1);\n              local_114 = (sqlite3_stmt *)0x0;\n              local_110 = 0;\n              do {\n                rc_2 = 0;\n                local_64 = (Fts3Table *)0x0;\n                local_60 = 0;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                for (iVar20 = 0xe; iVar20 != 0; iVar20 = iVar20 + -1) {\n                  pFVar29->apSegment = (Fts3SegReader **)0x0;\n                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);\n                }\n                local_5c = 0x13;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                local_12c = (sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt);\n                if ((local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  iVar8 = 0x13c8ad;\n                  local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);\n                  pOVar5 = local_28;\n                  if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                psVar19 = pStmt;\n                if (0 < (int)local_54) {\n                  iVar20 = 0;\n                  pVVar12 = local_54;\n                  do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);\n                }\nLAB_0013c5e2:\n                if (psVar19 != (sqlite3_stmt *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                pcVar9 = local_48;\n                if (local_48 != (char *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                bVar30 = 0xfffffffe < local_114;\n                local_114 = (sqlite3_stmt *)((int)local_114 + 1);\n                local_110 = local_110 + (uint)bVar30;\n              } while ((int)local_114 < (int)pVtab[0x15].pModule);\n            } while (local_12c == (sqlite3_stmt *)0x0);\n            sqlite3_reset(pAllLangid);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n          if (iVar8 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar8 = sqlite3_strnicmp(pcVar9,"automerge=",10);\n          if (iVar8 != 0) goto LAB_0013ba5f;\n          rc_2 = 0;\n          pcVar21 = pcVar9 + 10;\n          pStmt = (sqlite3_stmt *)0x0;\n          cVar6 = pcVar9[10];\n          psVar38 = (sqlite3_module *)0x0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar21 = pcVar21 + 1;\n              psVar38 = (sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10);\n              cVar6 = *pcVar21;\n              if (9 < (byte)(cVar6 - 0x30U)) break;\n            } while ((int)psVar38 < 0xccccccb);\n            if ((psVar38 == (sqlite3_module *)0x1) || (0x10 < (int)psVar38)) {\n              pVtab[4].pModule = (sqlite3_module *)0x8;\n            }\n            else {\n              pVtab[4].pModule = psVar38;\n            }\n          }\n          else {\n            pVtab[4].pModule = (sqlite3_module *)0x0;\n          }\n          if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n            fts3DbExec(&rc_2,(sqlite3 *)pVtab[1].pModule,\n                       "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                       ,pVtab[1].nRef,pVtab[1].zErrMsg);\n            local_f0 = (sqlite3_stmt *)rc_2;\n            if (rc_2 != 0) goto LAB_0013c0e0;\n            *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n          }\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x17,&pStmt,(sqlite3_value **)pRowid);\n          rc_2 = (int)local_f0;\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pStmt,2,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pStmt,(int)pVtab[4].pModule,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_step(pStmt);\n            local_f0 = (sqlite3_stmt *)sqlite3_reset(pStmt);\n          }\n        }\n      }" if (parenthesized_expression "(iVar8 == 7)" ( (binary_expression "iVar8 == 7" identifier == number_literal) )) (compound_statement "{\n        iVar8 = sqlite3_strnicmp(pcVar9,"rebuild",7);\n        if (iVar8 != 0) goto LAB_0013be5a;\n        local_f0 = (sqlite3_stmt *)fts3DeleteAll((Fts3Table *)pVtab,0);\n        rc_2 = (int)local_f0;\n        if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n        pStmt = (sqlite3_stmt *)0x0;\n        pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n        if (pcVar9 == (char *)0x0) goto LAB_0013d10b;\n        rc_2 = sqlite3LockAndPrepare\n                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt,\n                          (sqlite3_stmt **)0x0,(char **)pRowid);\n        sqlite3_free(pcVar9);\n        if (rc_2 == 0) {\n          psVar38 = pVtab[2].pModule;\n          iVar8 = sqlite3_initialize();\n          if (iVar8 != 0) {\nLAB_0013d10b:\n            rc_2 = 7;\n            goto LAB_0013d116;\n          }\n          local_114 = (sqlite3_stmt *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid));\n          if (local_114 == (sqlite3_stmt *)0x0) goto LAB_0013d10b;\n          psVar19 = local_114;\n          memset(local_114,0,(int)((int)&psVar38->iVersion + 1) * 0xc);\n          iVar8 = (int)pVtab[2].pModule * 4 + 4;\n          local_114 = local_114 + iVar8;\n          local_108 = local_114 + iVar8;\n          local_f0 = (sqlite3_stmt *)0x0;\n          while ((rc_2 == 0 && (iVar8 = sqlite3_step(pStmt), psVar26 = pStmt, iVar8 == 100))) {\n            psVar38 = (sqlite3_module *)0x0;\n            iVar8 = extraout_EDX;\n            if (pVtab[3].zErrMsg != (char *)0x0) {\n              pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n              iVar32 = sqlite3VdbeIntValue(pMVar10);\n              psVar38 = (sqlite3_module *)iVar32;\n              columnMallocFailure(psVar26);\n              iVar8 = extraout_EDX_00;\n            }\n            sVar34 = sqlite3_column_int64(pStmt,iVar8);\n            iVar20 = (int)((ulonglong)sVar34 >> 0x20);\n            lVar4._0_4_ = pVtab[0x16].nRef;\n            lVar4._4_4_ = pVtab[0x16].zErrMsg;\n            uVar11 = (uint)((uint)sVar34 < (uint)pVtab[0x16].nRef);\n            iVar8 = iVar20 - (int)pVtab[0x16].zErrMsg;\n            if (((((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0) &&\n                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 )) && ((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n               (rc_2 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), rc_2 == 0)) {\n              pVtab[0x16].nRef = (int)sVar34;\n              pVtab[0x16].zErrMsg = (char *)(int)((ulonglong)sVar34 >> 0x20);\n              pVtab[0x17].nRef = 0;\n              pVtab[0x17].pModule = psVar38;\n              rc_2 = 0;\n            }\n            memset(psVar19,0,(int)pVtab[2].pModule * 4 + 4);\n            if (rc_2 == 0) {\n              psVar18 = pVtab[2].pModule;\n              if (0 < (int)psVar18) {\n                psVar26 = (sqlite3_stmt *)0x0;\n                do {\n                  psVar36 = pStmt;\n                  psVar1 = psVar26 + 1;\n                  if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }\n                  psVar26 = psVar1;\n                } while ((int)psVar1 < (int)psVar18);\n              }\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (sqlite3_stmt *)((int)local_f0 + 1);\n              if (-1 < (int)psVar18) {\n                iVar8 = 0;\n                do {\n                  *(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);\n                  iVar8 = iVar8 + 1;\n                } while (iVar8 <= (int)pVtab[2].pModule);\n              }\n            }\n            else {\nLAB_0013d062:\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\nLAB_0013d0c3:\n                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);\n                if (rc_2 == 0) {\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }\n              }\n              sqlite3_finalize(pStmt);\n              pStmt = (sqlite3_stmt *)0x0;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (sqlite3_stmt *)0x0;\n          local_114 = (sqlite3_stmt *)0x0;\n          psVar19 = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)0x0;\n        }\n        if ((char)pVtab[0x13].nRef != '\0') {\n          fts3UpdateDocTotals(&rc_2,(Fts3Table *)pVtab,(u32 *)local_114,(u32 *)local_108,\n                              (int)local_f0);\n        }\n        sqlite3_free(psVar19);\n        if ((pStmt != (sqlite3_stmt *)0x0) && (iVar8 = sqlite3_finalize(pStmt), rc_2 == 0)) {\n          rc_2 = iVar8;\n        }\n        local_f0 = (sqlite3_stmt *)rc_2;\n      }" { (expression_statement "iVar8 = sqlite3_strnicmp(pcVar9,"rebuild",7);" (assignment_expression "iVar8 = sqlite3_strnicmp(pcVar9,"rebuild",7)" identifier = (call_expression "sqlite3_strnicmp(pcVar9,"rebuild",7)" identifier (argument_list "(pcVar9,"rebuild",7)" ( identifier , (string_literal ""rebuild"" " string_content ") , number_literal )))) ;) (if_statement "if (iVar8 != 0) goto LAB_0013be5a;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0013be5a;" goto statement_identifier ;)) (expression_statement "local_f0 = (sqlite3_stmt *)fts3DeleteAll((Fts3Table *)pVtab,0);" (assignment_expression "local_f0 = (sqlite3_stmt *)fts3DeleteAll((Fts3Table *)pVtab,0)" identifier = (cast_expression "(sqlite3_stmt *)fts3DeleteAll((Fts3Table *)pVtab,0)" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "fts3DeleteAll((Fts3Table *)pVtab,0)" identifier (argument_list "((Fts3Table *)pVtab,0)" ( (cast_expression "(Fts3Table *)pVtab" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))))) ;) (expression_statement "rc_2 = (int)local_f0;" (assignment_expression "rc_2 = (int)local_f0" identifier = (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;" if (parenthesized_expression "(local_f0 != (sqlite3_stmt *)0x0)" ( (binary_expression "local_f0 != (sqlite3_stmt *)0x0" identifier != (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013c0e0;" goto statement_identifier ;)) (expression_statement "pStmt = (sqlite3_stmt *)0x0;" (assignment_expression "pStmt = (sqlite3_stmt *)0x0" identifier = (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);" (assignment_expression "pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef)" identifier = (call_expression "sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef)" identifier (argument_list "("SELECT %s",pVtab[0x12].nRef)" ( (string_literal ""SELECT %s"" " string_content ") , (field_expression "pVtab[0x12].nRef" (subscript_expression "pVtab[0x12]" identifier [ number_literal ]) . field_identifier) )))) ;) (if_statement "if (pcVar9 == (char *)0x0) goto LAB_0013d10b;" if (parenthesized_expression "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013d10b;" goto statement_identifier ;)) (expression_statement "rc_2 = sqlite3LockAndPrepare\n                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt,\n                          (sqlite3_stmt **)0x0,(char **)pRowid);" (assignment_expression "rc_2 = sqlite3LockAndPrepare\n                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt,\n                          (sqlite3_stmt **)0x0,(char **)pRowid)" identifier = (call_expression "sqlite3LockAndPrepare\n                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt,\n                          (sqlite3_stmt **)0x0,(char **)pRowid)" identifier (argument_list "((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt,\n                          (sqlite3_stmt **)0x0,(char **)pRowid)" ( (cast_expression "(sqlite3 *)pVtab[1].pModule" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVtab[1].pModule" (subscript_expression "pVtab[1]" identifier [ number_literal ]) . field_identifier)) , identifier , number_literal , number_literal , (cast_expression "(Vdbe *)&pStmt" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pStmt" & identifier)) , (cast_expression "(sqlite3_stmt **)0x0" ( (type_descriptor "sqlite3_stmt **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(char **)pRowid" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) )))) ;) (expression_statement "sqlite3_free(pcVar9);" (call_expression "sqlite3_free(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (if_statement "if (rc_2 == 0) {\n          psVar38 = pVtab[2].pModule;\n          iVar8 = sqlite3_initialize();\n          if (iVar8 != 0) {\nLAB_0013d10b:\n            rc_2 = 7;\n            goto LAB_0013d116;\n          }\n          local_114 = (sqlite3_stmt *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid));\n          if (local_114 == (sqlite3_stmt *)0x0) goto LAB_0013d10b;\n          psVar19 = local_114;\n          memset(local_114,0,(int)((int)&psVar38->iVersion + 1) * 0xc);\n          iVar8 = (int)pVtab[2].pModule * 4 + 4;\n          local_114 = local_114 + iVar8;\n          local_108 = local_114 + iVar8;\n          local_f0 = (sqlite3_stmt *)0x0;\n          while ((rc_2 == 0 && (iVar8 = sqlite3_step(pStmt), psVar26 = pStmt, iVar8 == 100))) {\n            psVar38 = (sqlite3_module *)0x0;\n            iVar8 = extraout_EDX;\n            if (pVtab[3].zErrMsg != (char *)0x0) {\n              pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n              iVar32 = sqlite3VdbeIntValue(pMVar10);\n              psVar38 = (sqlite3_module *)iVar32;\n              columnMallocFailure(psVar26);\n              iVar8 = extraout_EDX_00;\n            }\n            sVar34 = sqlite3_column_int64(pStmt,iVar8);\n            iVar20 = (int)((ulonglong)sVar34 >> 0x20);\n            lVar4._0_4_ = pVtab[0x16].nRef;\n            lVar4._4_4_ = pVtab[0x16].zErrMsg;\n            uVar11 = (uint)((uint)sVar34 < (uint)pVtab[0x16].nRef);\n            iVar8 = iVar20 - (int)pVtab[0x16].zErrMsg;\n            if (((((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0) &&\n                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 )) && ((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n               (rc_2 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), rc_2 == 0)) {\n              pVtab[0x16].nRef = (int)sVar34;\n              pVtab[0x16].zErrMsg = (char *)(int)((ulonglong)sVar34 >> 0x20);\n              pVtab[0x17].nRef = 0;\n              pVtab[0x17].pModule = psVar38;\n              rc_2 = 0;\n            }\n            memset(psVar19,0,(int)pVtab[2].pModule * 4 + 4);\n            if (rc_2 == 0) {\n              psVar18 = pVtab[2].pModule;\n              if (0 < (int)psVar18) {\n                psVar26 = (sqlite3_stmt *)0x0;\n                do {\n                  psVar36 = pStmt;\n                  psVar1 = psVar26 + 1;\n                  if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }\n                  psVar26 = psVar1;\n                } while ((int)psVar1 < (int)psVar18);\n              }\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (sqlite3_stmt *)((int)local_f0 + 1);\n              if (-1 < (int)psVar18) {\n                iVar8 = 0;\n                do {\n                  *(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);\n                  iVar8 = iVar8 + 1;\n                } while (iVar8 <= (int)pVtab[2].pModule);\n              }\n            }\n            else {\nLAB_0013d062:\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\nLAB_0013d0c3:\n                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);\n                if (rc_2 == 0) {\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }\n              }\n              sqlite3_finalize(pStmt);\n              pStmt = (sqlite3_stmt *)0x0;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (sqlite3_stmt *)0x0;\n          local_114 = (sqlite3_stmt *)0x0;\n          psVar19 = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)0x0;\n        }" if (parenthesized_expression "(rc_2 == 0)" ( (binary_expression "rc_2 == 0" identifier == number_literal) )) (compound_statement "{\n          psVar38 = pVtab[2].pModule;\n          iVar8 = sqlite3_initialize();\n          if (iVar8 != 0) {\nLAB_0013d10b:\n            rc_2 = 7;\n            goto LAB_0013d116;\n          }\n          local_114 = (sqlite3_stmt *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid));\n          if (local_114 == (sqlite3_stmt *)0x0) goto LAB_0013d10b;\n          psVar19 = local_114;\n          memset(local_114,0,(int)((int)&psVar38->iVersion + 1) * 0xc);\n          iVar8 = (int)pVtab[2].pModule * 4 + 4;\n          local_114 = local_114 + iVar8;\n          local_108 = local_114 + iVar8;\n          local_f0 = (sqlite3_stmt *)0x0;\n          while ((rc_2 == 0 && (iVar8 = sqlite3_step(pStmt), psVar26 = pStmt, iVar8 == 100))) {\n            psVar38 = (sqlite3_module *)0x0;\n            iVar8 = extraout_EDX;\n            if (pVtab[3].zErrMsg != (char *)0x0) {\n              pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n              iVar32 = sqlite3VdbeIntValue(pMVar10);\n              psVar38 = (sqlite3_module *)iVar32;\n              columnMallocFailure(psVar26);\n              iVar8 = extraout_EDX_00;\n            }\n            sVar34 = sqlite3_column_int64(pStmt,iVar8);\n            iVar20 = (int)((ulonglong)sVar34 >> 0x20);\n            lVar4._0_4_ = pVtab[0x16].nRef;\n            lVar4._4_4_ = pVtab[0x16].zErrMsg;\n            uVar11 = (uint)((uint)sVar34 < (uint)pVtab[0x16].nRef);\n            iVar8 = iVar20 - (int)pVtab[0x16].zErrMsg;\n            if (((((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0) &&\n                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 )) && ((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n               (rc_2 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), rc_2 == 0)) {\n              pVtab[0x16].nRef = (int)sVar34;\n              pVtab[0x16].zErrMsg = (char *)(int)((ulonglong)sVar34 >> 0x20);\n              pVtab[0x17].nRef = 0;\n              pVtab[0x17].pModule = psVar38;\n              rc_2 = 0;\n            }\n            memset(psVar19,0,(int)pVtab[2].pModule * 4 + 4);\n            if (rc_2 == 0) {\n              psVar18 = pVtab[2].pModule;\n              if (0 < (int)psVar18) {\n                psVar26 = (sqlite3_stmt *)0x0;\n                do {\n                  psVar36 = pStmt;\n                  psVar1 = psVar26 + 1;\n                  if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }\n                  psVar26 = psVar1;\n                } while ((int)psVar1 < (int)psVar18);\n              }\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (sqlite3_stmt *)((int)local_f0 + 1);\n              if (-1 < (int)psVar18) {\n                iVar8 = 0;\n                do {\n                  *(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);\n                  iVar8 = iVar8 + 1;\n                } while (iVar8 <= (int)pVtab[2].pModule);\n              }\n            }\n            else {\nLAB_0013d062:\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\nLAB_0013d0c3:\n                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);\n                if (rc_2 == 0) {\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }\n              }\n              sqlite3_finalize(pStmt);\n              pStmt = (sqlite3_stmt *)0x0;\n            }\n          }\n        }" { (expression_statement "psVar38 = pVtab[2].pModule;" (assignment_expression "psVar38 = pVtab[2].pModule" identifier = (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar8 = sqlite3_initialize();" (assignment_expression "iVar8 = sqlite3_initialize()" identifier = (call_expression "sqlite3_initialize()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar8 != 0) {\nLAB_0013d10b:\n            rc_2 = 7;\n            goto LAB_0013d116;\n          }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0013d10b:\n            rc_2 = 7;\n            goto LAB_0013d116;\n          }" { (labeled_statement "LAB_0013d10b:\n            rc_2 = 7;" statement_identifier : (expression_statement "rc_2 = 7;" (assignment_expression "rc_2 = 7" identifier = number_literal) ;)) (goto_statement "goto LAB_0013d116;" goto statement_identifier ;) })) (expression_statement "local_114 = (sqlite3_stmt *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid));" (assignment_expression "local_114 = (sqlite3_stmt *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid))" identifier = (cast_expression "(sqlite3_stmt *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid))" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid))" identifier (argument_list "(CONCAT44(in_stack_fffffec8,pRowid))" ( (call_expression "CONCAT44(in_stack_fffffec8,pRowid)" identifier (argument_list "(in_stack_fffffec8,pRowid)" ( identifier , identifier ))) ))))) ;) (if_statement "if (local_114 == (sqlite3_stmt *)0x0) goto LAB_0013d10b;" if (parenthesized_expression "(local_114 == (sqlite3_stmt *)0x0)" ( (binary_expression "local_114 == (sqlite3_stmt *)0x0" identifier == (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013d10b;" goto statement_identifier ;)) (expression_statement "psVar19 = local_114;" (assignment_expression "psVar19 = local_114" identifier = identifier) ;) (expression_statement "memset(local_114,0,(int)((int)&psVar38->iVersion + 1) * 0xc);" (call_expression "memset(local_114,0,(int)((int)&psVar38->iVersion + 1) * 0xc)" identifier (argument_list "(local_114,0,(int)((int)&psVar38->iVersion + 1) * 0xc)" ( identifier , number_literal , (binary_expression "(int)((int)&psVar38->iVersion + 1) * 0xc" (cast_expression "(int)((int)&psVar38->iVersion + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&psVar38->iVersion + 1)" ( (binary_expression "(int)&psVar38->iVersion + 1" (cast_expression "(int)&psVar38->iVersion" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar38->iVersion" & (field_expression "psVar38->iVersion" identifier -> field_identifier))) + number_literal) ))) * number_literal) ))) ;) (expression_statement "iVar8 = (int)pVtab[2].pModule * 4 + 4;" (assignment_expression "iVar8 = (int)pVtab[2].pModule * 4 + 4" identifier = (binary_expression "(int)pVtab[2].pModule * 4 + 4" (binary_expression "(int)pVtab[2].pModule * 4" (cast_expression "(int)pVtab[2].pModule" ( (type_descriptor "int" primitive_type) ) (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier)) * number_literal) + number_literal)) ;) (expression_statement "local_114 = local_114 + iVar8;" (assignment_expression "local_114 = local_114 + iVar8" identifier = (binary_expression "local_114 + iVar8" identifier + identifier)) ;) (expression_statement "local_108 = local_114 + iVar8;" (assignment_expression "local_108 = local_114 + iVar8" identifier = (binary_expression "local_114 + iVar8" identifier + identifier)) ;) (expression_statement "local_f0 = (sqlite3_stmt *)0x0;" (assignment_expression "local_f0 = (sqlite3_stmt *)0x0" identifier = (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while ((rc_2 == 0 && (iVar8 = sqlite3_step(pStmt), psVar26 = pStmt, iVar8 == 100))) {\n            psVar38 = (sqlite3_module *)0x0;\n            iVar8 = extraout_EDX;\n            if (pVtab[3].zErrMsg != (char *)0x0) {\n              pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n              iVar32 = sqlite3VdbeIntValue(pMVar10);\n              psVar38 = (sqlite3_module *)iVar32;\n              columnMallocFailure(psVar26);\n              iVar8 = extraout_EDX_00;\n            }\n            sVar34 = sqlite3_column_int64(pStmt,iVar8);\n            iVar20 = (int)((ulonglong)sVar34 >> 0x20);\n            lVar4._0_4_ = pVtab[0x16].nRef;\n            lVar4._4_4_ = pVtab[0x16].zErrMsg;\n            uVar11 = (uint)((uint)sVar34 < (uint)pVtab[0x16].nRef);\n            iVar8 = iVar20 - (int)pVtab[0x16].zErrMsg;\n            if (((((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0) &&\n                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 )) && ((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n               (rc_2 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), rc_2 == 0)) {\n              pVtab[0x16].nRef = (int)sVar34;\n              pVtab[0x16].zErrMsg = (char *)(int)((ulonglong)sVar34 >> 0x20);\n              pVtab[0x17].nRef = 0;\n              pVtab[0x17].pModule = psVar38;\n              rc_2 = 0;\n            }\n            memset(psVar19,0,(int)pVtab[2].pModule * 4 + 4);\n            if (rc_2 == 0) {\n              psVar18 = pVtab[2].pModule;\n              if (0 < (int)psVar18) {\n                psVar26 = (sqlite3_stmt *)0x0;\n                do {\n                  psVar36 = pStmt;\n                  psVar1 = psVar26 + 1;\n                  if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }\n                  psVar26 = psVar1;\n                } while ((int)psVar1 < (int)psVar18);\n              }\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (sqlite3_stmt *)((int)local_f0 + 1);\n              if (-1 < (int)psVar18) {\n                iVar8 = 0;\n                do {\n                  *(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);\n                  iVar8 = iVar8 + 1;\n                } while (iVar8 <= (int)pVtab[2].pModule);\n              }\n            }\n            else {\nLAB_0013d062:\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\nLAB_0013d0c3:\n                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);\n                if (rc_2 == 0) {\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }\n              }\n              sqlite3_finalize(pStmt);\n              pStmt = (sqlite3_stmt *)0x0;\n            }\n          }" while (parenthesized_expression "((rc_2 == 0 && (iVar8 = sqlite3_step(pStmt), psVar26 = pStmt, iVar8 == 100)))" ( (parenthesized_expression "(rc_2 == 0 && (iVar8 = sqlite3_step(pStmt), psVar26 = pStmt, iVar8 == 100))" ( (binary_expression "rc_2 == 0 && (iVar8 = sqlite3_step(pStmt), psVar26 = pStmt, iVar8 == 100)" (binary_expression "rc_2 == 0" identifier == number_literal) && (parenthesized_expression "(iVar8 = sqlite3_step(pStmt), psVar26 = pStmt, iVar8 == 100)" ( (comma_expression "iVar8 = sqlite3_step(pStmt), psVar26 = pStmt, iVar8 == 100" (assignment_expression "iVar8 = sqlite3_step(pStmt)" identifier = (call_expression "sqlite3_step(pStmt)" identifier (argument_list "(pStmt)" ( identifier )))) , (comma_expression "psVar26 = pStmt, iVar8 == 100" (assignment_expression "psVar26 = pStmt" identifier = identifier) , (binary_expression "iVar8 == 100" identifier == number_literal))) ))) )) )) (compound_statement "{\n            psVar38 = (sqlite3_module *)0x0;\n            iVar8 = extraout_EDX;\n            if (pVtab[3].zErrMsg != (char *)0x0) {\n              pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n              iVar32 = sqlite3VdbeIntValue(pMVar10);\n              psVar38 = (sqlite3_module *)iVar32;\n              columnMallocFailure(psVar26);\n              iVar8 = extraout_EDX_00;\n            }\n            sVar34 = sqlite3_column_int64(pStmt,iVar8);\n            iVar20 = (int)((ulonglong)sVar34 >> 0x20);\n            lVar4._0_4_ = pVtab[0x16].nRef;\n            lVar4._4_4_ = pVtab[0x16].zErrMsg;\n            uVar11 = (uint)((uint)sVar34 < (uint)pVtab[0x16].nRef);\n            iVar8 = iVar20 - (int)pVtab[0x16].zErrMsg;\n            if (((((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0) &&\n                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 )) && ((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n               (rc_2 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), rc_2 == 0)) {\n              pVtab[0x16].nRef = (int)sVar34;\n              pVtab[0x16].zErrMsg = (char *)(int)((ulonglong)sVar34 >> 0x20);\n              pVtab[0x17].nRef = 0;\n              pVtab[0x17].pModule = psVar38;\n              rc_2 = 0;\n            }\n            memset(psVar19,0,(int)pVtab[2].pModule * 4 + 4);\n            if (rc_2 == 0) {\n              psVar18 = pVtab[2].pModule;\n              if (0 < (int)psVar18) {\n                psVar26 = (sqlite3_stmt *)0x0;\n                do {\n                  psVar36 = pStmt;\n                  psVar1 = psVar26 + 1;\n                  if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }\n                  psVar26 = psVar1;\n                } while ((int)psVar1 < (int)psVar18);\n              }\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (sqlite3_stmt *)((int)local_f0 + 1);\n              if (-1 < (int)psVar18) {\n                iVar8 = 0;\n                do {\n                  *(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);\n                  iVar8 = iVar8 + 1;\n                } while (iVar8 <= (int)pVtab[2].pModule);\n              }\n            }\n            else {\nLAB_0013d062:\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\nLAB_0013d0c3:\n                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);\n                if (rc_2 == 0) {\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }\n              }\n              sqlite3_finalize(pStmt);\n              pStmt = (sqlite3_stmt *)0x0;\n            }\n          }" { (expression_statement "psVar38 = (sqlite3_module *)0x0;" (assignment_expression "psVar38 = (sqlite3_module *)0x0" identifier = (cast_expression "(sqlite3_module *)0x0" ( (type_descriptor "sqlite3_module *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = extraout_EDX;" (assignment_expression "iVar8 = extraout_EDX" identifier = identifier) ;) (if_statement "if (pVtab[3].zErrMsg != (char *)0x0) {\n              pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n              iVar32 = sqlite3VdbeIntValue(pMVar10);\n              psVar38 = (sqlite3_module *)iVar32;\n              columnMallocFailure(psVar26);\n              iVar8 = extraout_EDX_00;\n            }" if (parenthesized_expression "(pVtab[3].zErrMsg != (char *)0x0)" ( (binary_expression "pVtab[3].zErrMsg != (char *)0x0" (field_expression "pVtab[3].zErrMsg" (subscript_expression "pVtab[3]" identifier [ number_literal ]) . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n              iVar32 = sqlite3VdbeIntValue(pMVar10);\n              psVar38 = (sqlite3_module *)iVar32;\n              columnMallocFailure(psVar26);\n              iVar8 = extraout_EDX_00;\n            }" { (expression_statement "pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);" (assignment_expression "pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8)" identifier = (call_expression "columnMem(psVar19,(int)in_stack_fffffec8)" identifier (argument_list "(psVar19,(int)in_stack_fffffec8)" ( identifier , (cast_expression "(int)in_stack_fffffec8" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "iVar32 = sqlite3VdbeIntValue(pMVar10);" (assignment_expression "iVar32 = sqlite3VdbeIntValue(pMVar10)" identifier = (call_expression "sqlite3VdbeIntValue(pMVar10)" identifier (argument_list "(pMVar10)" ( identifier )))) ;) (expression_statement "psVar38 = (sqlite3_module *)iVar32;" (assignment_expression "psVar38 = (sqlite3_module *)iVar32" identifier = (cast_expression "(sqlite3_module *)iVar32" ( (type_descriptor "sqlite3_module *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "columnMallocFailure(psVar26);" (call_expression "columnMallocFailure(psVar26)" identifier (argument_list "(psVar26)" ( identifier ))) ;) (expression_statement "iVar8 = extraout_EDX_00;" (assignment_expression "iVar8 = extraout_EDX_00" identifier = identifier) ;) })) (expression_statement "sVar34 = sqlite3_column_int64(pStmt,iVar8);" (assignment_expression "sVar34 = sqlite3_column_int64(pStmt,iVar8)" identifier = (call_expression "sqlite3_column_int64(pStmt,iVar8)" identifier (argument_list "(pStmt,iVar8)" ( identifier , identifier )))) ;) (expression_statement "iVar20 = (int)((ulonglong)sVar34 >> 0x20);" (assignment_expression "iVar20 = (int)((ulonglong)sVar34 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)sVar34 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)sVar34 >> 0x20)" ( (binary_expression "(ulonglong)sVar34 >> 0x20" (cast_expression "(ulonglong)sVar34" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "lVar4._0_4_ = pVtab[0x16].nRef;" (assignment_expression "lVar4._0_4_ = pVtab[0x16].nRef" (field_expression "lVar4._0_4_" identifier . field_identifier) = (field_expression "pVtab[0x16].nRef" (subscript_expression "pVtab[0x16]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "lVar4._4_4_ = pVtab[0x16].zErrMsg;" (assignment_expression "lVar4._4_4_ = pVtab[0x16].zErrMsg" (field_expression "lVar4._4_4_" identifier . field_identifier) = (field_expression "pVtab[0x16].zErrMsg" (subscript_expression "pVtab[0x16]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "uVar11 = (uint)((uint)sVar34 < (uint)pVtab[0x16].nRef);" (assignment_expression "uVar11 = (uint)((uint)sVar34 < (uint)pVtab[0x16].nRef)" identifier = (call_expression "(uint)((uint)sVar34 < (uint)pVtab[0x16].nRef)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)sVar34 < (uint)pVtab[0x16].nRef)" ( (binary_expression "(uint)sVar34 < (uint)pVtab[0x16].nRef" (cast_expression "(uint)sVar34" ( (type_descriptor "uint" type_identifier) ) identifier) < (cast_expression "(uint)pVtab[0x16].nRef" ( (type_descriptor "uint" type_identifier) ) (field_expression "pVtab[0x16].nRef" (subscript_expression "pVtab[0x16]" identifier [ number_literal ]) . field_identifier))) )))) ;) (expression_statement "iVar8 = iVar20 - (int)pVtab[0x16].zErrMsg;" (assignment_expression "iVar8 = iVar20 - (int)pVtab[0x16].zErrMsg" identifier = (binary_expression "iVar20 - (int)pVtab[0x16].zErrMsg" identifier - (cast_expression "(int)pVtab[0x16].zErrMsg" ( (type_descriptor "int" primitive_type) ) (field_expression "pVtab[0x16].zErrMsg" (subscript_expression "pVtab[0x16]" identifier [ number_literal ]) . field_identifier)))) ;) (if_statement "if (((((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0) &&\n                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 )) && ((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n               (rc_2 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), rc_2 == 0)) {\n              pVtab[0x16].nRef = (int)sVar34;\n              pVtab[0x16].zErrMsg = (char *)(int)((ulonglong)sVar34 >> 0x20);\n              pVtab[0x17].nRef = 0;\n              pVtab[0x17].pModule = psVar38;\n              rc_2 = 0;\n            }" if (parenthesized_expression "(((((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0) &&\n                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 )) && ((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n               (rc_2 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), rc_2 == 0))" ( (binary_expression "((((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0) &&\n                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 )) && ((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n               (rc_2 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), rc_2 == 0)" (parenthesized_expression "((((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0) &&\n                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 )) && ((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg))" ( (binary_expression "(((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0) &&\n                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 )) && ((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)" (parenthesized_expression "(((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0) &&\n                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 ))" ( (binary_expression "((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0) &&\n                 (((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 )" (parenthesized_expression "((SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0)" ( (binary_expression "(SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)) ==\n                   (int)(iVar8 - uVar11) < 0" (parenthesized_expression "(SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11))" ( (binary_expression "SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg) != SBORROW4(iVar8,uVar11)" (call_expression "SBORROW4(iVar20,(int)pVtab[0x16].zErrMsg)" identifier (argument_list "(iVar20,(int)pVtab[0x16].zErrMsg)" ( identifier , (cast_expression "(int)pVtab[0x16].zErrMsg" ( (type_descriptor "int" primitive_type) ) (field_expression "pVtab[0x16].zErrMsg" (subscript_expression "pVtab[0x16]" identifier [ number_literal ]) . field_identifier)) ))) != (call_expression "SBORROW4(iVar8,uVar11)" identifier (argument_list "(iVar8,uVar11)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar8 - uVar11) < 0" (cast_expression "(int)(iVar8 - uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar8 - uVar11)" ( (binary_expression "iVar8 - uVar11" identifier - identifier) ))) < number_literal)) )) && (parenthesized_expression "(((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))\n                 )" ( (parenthesized_expression "((sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule))" ( (binary_expression "(sVar34 != lVar4 || (pVtab[0x17].nRef != 0)) && (psVar38 == pVtab[0x17].pModule)" (parenthesized_expression "(sVar34 != lVar4 || (pVtab[0x17].nRef != 0))" ( (binary_expression "sVar34 != lVar4 || (pVtab[0x17].nRef != 0)" (binary_expression "sVar34 != lVar4" identifier != identifier) || (parenthesized_expression "(pVtab[0x17].nRef != 0)" ( (binary_expression "pVtab[0x17].nRef != 0" (field_expression "pVtab[0x17].nRef" (subscript_expression "pVtab[0x17]" identifier [ number_literal ]) . field_identifier) != number_literal) ))) )) && (parenthesized_expression "(psVar38 == pVtab[0x17].pModule)" ( (binary_expression "psVar38 == pVtab[0x17].pModule" identifier == (field_expression "pVtab[0x17].pModule" (subscript_expression "pVtab[0x17]" identifier [ number_literal ]) . field_identifier)) ))) )) ))) )) && (parenthesized_expression "((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)" ( (binary_expression "(int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg" (cast_expression "(int)pVtab[0x16].pModule" ( (type_descriptor "int" primitive_type) ) (field_expression "pVtab[0x16].pModule" (subscript_expression "pVtab[0x16]" identifier [ number_literal ]) . field_identifier)) <= (cast_expression "(int)pVtab[0x15].zErrMsg" ( (type_descriptor "int" primitive_type) ) (field_expression "pVtab[0x15].zErrMsg" (subscript_expression "pVtab[0x15]" identifier [ number_literal ]) . field_identifier))) ))) )) || (parenthesized_expression "(rc_2 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), rc_2 == 0)" ( (comma_expression "rc_2 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), rc_2 == 0" (assignment_expression "rc_2 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab)" identifier = (call_expression "sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab)" identifier (argument_list "((Fts3Table *)pVtab)" ( (cast_expression "(Fts3Table *)pVtab" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "rc_2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n              pVtab[0x16].nRef = (int)sVar34;\n              pVtab[0x16].zErrMsg = (char *)(int)((ulonglong)sVar34 >> 0x20);\n              pVtab[0x17].nRef = 0;\n              pVtab[0x17].pModule = psVar38;\n              rc_2 = 0;\n            }" { (expression_statement "pVtab[0x16].nRef = (int)sVar34;" (assignment_expression "pVtab[0x16].nRef = (int)sVar34" (field_expression "pVtab[0x16].nRef" (subscript_expression "pVtab[0x16]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(int)sVar34" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pVtab[0x16].zErrMsg = (char *)(int)((ulonglong)sVar34 >> 0x20);" (assignment_expression "pVtab[0x16].zErrMsg = (char *)(int)((ulonglong)sVar34 >> 0x20)" (field_expression "pVtab[0x16].zErrMsg" (subscript_expression "pVtab[0x16]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(char *)(int)((ulonglong)sVar34 >> 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)((ulonglong)sVar34 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)sVar34 >> 0x20)" ( (binary_expression "(ulonglong)sVar34 >> 0x20" (cast_expression "(ulonglong)sVar34" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))))) ;) (expression_statement "pVtab[0x17].nRef = 0;" (assignment_expression "pVtab[0x17].nRef = 0" (field_expression "pVtab[0x17].nRef" (subscript_expression "pVtab[0x17]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "pVtab[0x17].pModule = psVar38;" (assignment_expression "pVtab[0x17].pModule = psVar38" (field_expression "pVtab[0x17].pModule" (subscript_expression "pVtab[0x17]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "rc_2 = 0;" (assignment_expression "rc_2 = 0" identifier = number_literal) ;) })) (expression_statement "memset(psVar19,0,(int)pVtab[2].pModule * 4 + 4);" (call_expression "memset(psVar19,0,(int)pVtab[2].pModule * 4 + 4)" identifier (argument_list "(psVar19,0,(int)pVtab[2].pModule * 4 + 4)" ( identifier , number_literal , (binary_expression "(int)pVtab[2].pModule * 4 + 4" (binary_expression "(int)pVtab[2].pModule * 4" (cast_expression "(int)pVtab[2].pModule" ( (type_descriptor "int" primitive_type) ) (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier)) * number_literal) + number_literal) ))) ;) (if_statement "if (rc_2 == 0) {\n              psVar18 = pVtab[2].pModule;\n              if (0 < (int)psVar18) {\n                psVar26 = (sqlite3_stmt *)0x0;\n                do {\n                  psVar36 = pStmt;\n                  psVar1 = psVar26 + 1;\n                  if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }\n                  psVar26 = psVar1;\n                } while ((int)psVar1 < (int)psVar18);\n              }\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (sqlite3_stmt *)((int)local_f0 + 1);\n              if (-1 < (int)psVar18) {\n                iVar8 = 0;\n                do {\n                  *(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);\n                  iVar8 = iVar8 + 1;\n                } while (iVar8 <= (int)pVtab[2].pModule);\n              }\n            }\n            else {\nLAB_0013d062:\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\nLAB_0013d0c3:\n                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);\n                if (rc_2 == 0) {\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }\n              }\n              sqlite3_finalize(pStmt);\n              pStmt = (sqlite3_stmt *)0x0;\n            }" if (parenthesized_expression "(rc_2 == 0)" ( (binary_expression "rc_2 == 0" identifier == number_literal) )) (compound_statement "{\n              psVar18 = pVtab[2].pModule;\n              if (0 < (int)psVar18) {\n                psVar26 = (sqlite3_stmt *)0x0;\n                do {\n                  psVar36 = pStmt;\n                  psVar1 = psVar26 + 1;\n                  if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }\n                  psVar26 = psVar1;\n                } while ((int)psVar1 < (int)psVar18);\n              }\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (sqlite3_stmt *)((int)local_f0 + 1);\n              if (-1 < (int)psVar18) {\n                iVar8 = 0;\n                do {\n                  *(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);\n                  iVar8 = iVar8 + 1;\n                } while (iVar8 <= (int)pVtab[2].pModule);\n              }\n            }" { (expression_statement "psVar18 = pVtab[2].pModule;" (assignment_expression "psVar18 = pVtab[2].pModule" identifier = (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (0 < (int)psVar18) {\n                psVar26 = (sqlite3_stmt *)0x0;\n                do {\n                  psVar36 = pStmt;\n                  psVar1 = psVar26 + 1;\n                  if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }\n                  psVar26 = psVar1;\n                } while ((int)psVar1 < (int)psVar18);\n              }" if (parenthesized_expression "(0 < (int)psVar18)" ( (binary_expression "0 < (int)psVar18" number_literal < (cast_expression "(int)psVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                psVar26 = (sqlite3_stmt *)0x0;\n                do {\n                  psVar36 = pStmt;\n                  psVar1 = psVar26 + 1;\n                  if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }\n                  psVar26 = psVar1;\n                } while ((int)psVar1 < (int)psVar18);\n              }" { (expression_statement "psVar26 = (sqlite3_stmt *)0x0;" (assignment_expression "psVar26 = (sqlite3_stmt *)0x0" identifier = (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                  psVar36 = pStmt;\n                  psVar1 = psVar26 + 1;\n                  if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }\n                  psVar26 = psVar1;\n                } while ((int)psVar1 < (int)psVar18);" do (compound_statement "{\n                  psVar36 = pStmt;\n                  psVar1 = psVar26 + 1;\n                  if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }\n                  psVar26 = psVar1;\n                }" { (expression_statement "psVar36 = pStmt;" (assignment_expression "psVar36 = pStmt" identifier = identifier) ;) (expression_statement "psVar1 = psVar26 + 1;" (assignment_expression "psVar1 = psVar26 + 1" identifier = (binary_expression "psVar26 + 1" identifier + number_literal)) ;) (if_statement "if (pVtab[2].zErrMsg[(int)psVar26] == '\0') {\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }" if (parenthesized_expression "(pVtab[2].zErrMsg[(int)psVar26] == '\0')" ( (binary_expression "pVtab[2].zErrMsg[(int)psVar26] == '\0'" (subscript_expression "pVtab[2].zErrMsg[(int)psVar26]" (field_expression "pVtab[2].zErrMsg" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier) [ (cast_expression "(int)psVar26" ( (type_descriptor "int" primitive_type) ) identifier) ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);\n                    pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);\n                    columnMallocFailure(psVar36);\n                    psVar36 = psVar19 + (int)psVar26 * 4;\n                    rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);\n                    pStmt_00 = pStmt;\n                    pMVar10 = columnMem(psVar26,(int)psVar36);\n                    iVar8 = sqlite3ValueBytes(pMVar10,enc_02);\n                    columnMallocFailure(pStmt_00);\n                    *(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;\n                    if (rc_2 != 0) goto LAB_0013d062;\n                    psVar18 = pVtab[2].pModule;\n                  }" { (expression_statement "pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8);" (assignment_expression "pMVar10 = columnMem(psVar19,(int)in_stack_fffffec8)" identifier = (call_expression "columnMem(psVar19,(int)in_stack_fffffec8)" identifier (argument_list "(psVar19,(int)in_stack_fffffec8)" ( identifier , (cast_expression "(int)in_stack_fffffec8" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01);" (assignment_expression "pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_01)" identifier = (cast_expression "(char *)sqlite3ValueText(pMVar10,enc_01)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3ValueText(pMVar10,enc_01)" identifier (argument_list "(pMVar10,enc_01)" ( identifier , identifier ))))) ;) (expression_statement "columnMallocFailure(psVar36);" (call_expression "columnMallocFailure(psVar36)" identifier (argument_list "(psVar36)" ( identifier ))) ;) (expression_statement "psVar36 = psVar19 + (int)psVar26 * 4;" (assignment_expression "psVar36 = psVar19 + (int)psVar26 * 4" identifier = (binary_expression "psVar19 + (int)psVar26 * 4" identifier + (binary_expression "(int)psVar26 * 4" (cast_expression "(int)psVar26" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36);" (assignment_expression "rc_2 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36)" identifier = (call_expression "fts3PendingTermsAdd((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36)" identifier (argument_list "((Fts3Table *)pVtab,(int)psVar38,pcVar9,(int)psVar26,\n                                               (u32 *)psVar36)" ( (cast_expression "(Fts3Table *)pVtab" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)psVar38" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , (cast_expression "(int)psVar26" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(u32 *)psVar36" ( (type_descriptor "u32 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pStmt_00 = pStmt;" (assignment_expression "pStmt_00 = pStmt" identifier = identifier) ;) (expression_statement "pMVar10 = columnMem(psVar26,(int)psVar36);" (assignment_expression "pMVar10 = columnMem(psVar26,(int)psVar36)" identifier = (call_expression "columnMem(psVar26,(int)psVar36)" identifier (argument_list "(psVar26,(int)psVar36)" ( identifier , (cast_expression "(int)psVar36" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "iVar8 = sqlite3ValueBytes(pMVar10,enc_02);" (assignment_expression "iVar8 = sqlite3ValueBytes(pMVar10,enc_02)" identifier = (call_expression "sqlite3ValueBytes(pMVar10,enc_02)" identifier (argument_list "(pMVar10,enc_02)" ( identifier , identifier )))) ;) (expression_statement "columnMallocFailure(pStmt_00);" (call_expression "columnMallocFailure(pStmt_00)" identifier (argument_list "(pStmt_00)" ( identifier ))) ;) (expression_statement "*(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8;" (assignment_expression "*(int *)(psVar19 + (int)pVtab[2].pModule * 4) =\n                         *(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8" (pointer_expression "*(int *)(psVar19 + (int)pVtab[2].pModule * 4)" * (cast_expression "(int *)(psVar19 + (int)pVtab[2].pModule * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar19 + (int)pVtab[2].pModule * 4)" ( (binary_expression "psVar19 + (int)pVtab[2].pModule * 4" identifier + (binary_expression "(int)pVtab[2].pModule * 4" (cast_expression "(int)pVtab[2].pModule" ( (type_descriptor "int" primitive_type) ) (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier)) * number_literal)) )))) = (binary_expression "*(int *)(psVar19 + (int)pVtab[2].pModule * 4) + iVar8" (pointer_expression "*(int *)(psVar19 + (int)pVtab[2].pModule * 4)" * (cast_expression "(int *)(psVar19 + (int)pVtab[2].pModule * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar19 + (int)pVtab[2].pModule * 4)" ( (binary_expression "psVar19 + (int)pVtab[2].pModule * 4" identifier + (binary_expression "(int)pVtab[2].pModule * 4" (cast_expression "(int)pVtab[2].pModule" ( (type_descriptor "int" primitive_type) ) (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier)) * number_literal)) )))) + identifier)) ;) (if_statement "if (rc_2 != 0) goto LAB_0013d062;" if (parenthesized_expression "(rc_2 != 0)" ( (binary_expression "rc_2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0013d062;" goto statement_identifier ;)) (expression_statement "psVar18 = pVtab[2].pModule;" (assignment_expression "psVar18 = pVtab[2].pModule" identifier = (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier)) ;) })) (expression_statement "psVar26 = psVar1;" (assignment_expression "psVar26 = psVar1" identifier = identifier) ;) }) while (parenthesized_expression "((int)psVar1 < (int)psVar18)" ( (binary_expression "(int)psVar1 < (int)psVar18" (cast_expression "(int)psVar1" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)psVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (if_statement "if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') goto LAB_0013d0c3;" if (parenthesized_expression "(*(char *)((int)&pVtab[0x13].nRef + 2) != '\0')" ( (binary_expression "*(char *)((int)&pVtab[0x13].nRef + 2) != '\0'" (pointer_expression "*(char *)((int)&pVtab[0x13].nRef + 2)" * (cast_expression "(char *)((int)&pVtab[0x13].nRef + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pVtab[0x13].nRef + 2)" ( (binary_expression "(int)&pVtab[0x13].nRef + 2" (cast_expression "(int)&pVtab[0x13].nRef" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pVtab[0x13].nRef" & (field_expression "pVtab[0x13].nRef" (subscript_expression "pVtab[0x13]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0013d0c3;" goto statement_identifier ;)) (labeled_statement "LAB_0013d09a:\n              local_f0 = (sqlite3_stmt *)((int)local_f0 + 1);" statement_identifier : (expression_statement "local_f0 = (sqlite3_stmt *)((int)local_f0 + 1);" (assignment_expression "local_f0 = (sqlite3_stmt *)((int)local_f0 + 1)" identifier = (cast_expression "(sqlite3_stmt *)((int)local_f0 + 1)" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_f0 + 1)" ( (binary_expression "(int)local_f0 + 1" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (if_statement "if (-1 < (int)psVar18) {\n                iVar8 = 0;\n                do {\n                  *(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);\n                  iVar8 = iVar8 + 1;\n                } while (iVar8 <= (int)pVtab[2].pModule);\n              }" if (parenthesized_expression "(-1 < (int)psVar18)" ( (binary_expression "-1 < (int)psVar18" number_literal < (cast_expression "(int)psVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                iVar8 = 0;\n                do {\n                  *(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);\n                  iVar8 = iVar8 + 1;\n                } while (iVar8 <= (int)pVtab[2].pModule);\n              }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n                  *(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);\n                  iVar8 = iVar8 + 1;\n                } while (iVar8 <= (int)pVtab[2].pModule);" do (compound_statement "{\n                  *(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);\n                  iVar8 = iVar8 + 1;\n                }" { (expression_statement "*(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4);" (assignment_expression "*(int *)(local_114 + iVar8 * 4) =\n                       *(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4)" (pointer_expression "*(int *)(local_114 + iVar8 * 4)" * (cast_expression "(int *)(local_114 + iVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_114 + iVar8 * 4)" ( (binary_expression "local_114 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = (binary_expression "*(int *)(local_114 + iVar8 * 4) + *(int *)(psVar19 + iVar8 * 4)" (pointer_expression "*(int *)(local_114 + iVar8 * 4)" * (cast_expression "(int *)(local_114 + iVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_114 + iVar8 * 4)" ( (binary_expression "local_114 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) + (pointer_expression "*(int *)(psVar19 + iVar8 * 4)" * (cast_expression "(int *)(psVar19 + iVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar19 + iVar8 * 4)" ( (binary_expression "psVar19 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))))) ;) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 <= (int)pVtab[2].pModule)" ( (binary_expression "iVar8 <= (int)pVtab[2].pModule" identifier <= (cast_expression "(int)pVtab[2].pModule" ( (type_descriptor "int" primitive_type) ) (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier))) )) ;) })) }) (else_clause "else {\nLAB_0013d062:\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\nLAB_0013d0c3:\n                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);\n                if (rc_2 == 0) {\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }\n              }\n              sqlite3_finalize(pStmt);\n              pStmt = (sqlite3_stmt *)0x0;\n            }" else (compound_statement "{\nLAB_0013d062:\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\nLAB_0013d0c3:\n                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);\n                if (rc_2 == 0) {\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }\n              }\n              sqlite3_finalize(pStmt);\n              pStmt = (sqlite3_stmt *)0x0;\n            }" { (labeled_statement "LAB_0013d062:\n              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\nLAB_0013d0c3:\n                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);\n                if (rc_2 == 0) {\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }\n              }" statement_identifier : (if_statement "if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\nLAB_0013d0c3:\n                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);\n                if (rc_2 == 0) {\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }\n              }" if (parenthesized_expression "(*(char *)((int)&pVtab[0x13].nRef + 2) != '\0')" ( (binary_expression "*(char *)((int)&pVtab[0x13].nRef + 2) != '\0'" (pointer_expression "*(char *)((int)&pVtab[0x13].nRef + 2)" * (cast_expression "(char *)((int)&pVtab[0x13].nRef + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pVtab[0x13].nRef + 2)" ( (binary_expression "(int)&pVtab[0x13].nRef + 2" (cast_expression "(int)&pVtab[0x13].nRef" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pVtab[0x13].nRef" & (field_expression "pVtab[0x13].nRef" (subscript_expression "pVtab[0x13]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0013d0c3:\n                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);\n                if (rc_2 == 0) {\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }\n              }" { (labeled_statement "LAB_0013d0c3:\n                fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);" statement_identifier : (expression_statement "fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19);" (call_expression "fts3InsertDocsize(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19)" identifier (argument_list "(&rc_2,(Fts3Table *)pVtab,(u32 *)psVar19)" ( (pointer_expression "&rc_2" & identifier) , (cast_expression "(Fts3Table *)pVtab" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(u32 *)psVar19" ( (type_descriptor "u32 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (if_statement "if (rc_2 == 0) {\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }" if (parenthesized_expression "(rc_2 == 0)" ( (binary_expression "rc_2 == 0" identifier == number_literal) )) (compound_statement "{\n                  psVar18 = pVtab[2].pModule;\n                  goto LAB_0013d09a;\n                }" { (expression_statement "psVar18 = pVtab[2].pModule;" (assignment_expression "psVar18 = pVtab[2].pModule" identifier = (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier)) ;) (goto_statement "goto LAB_0013d09a;" goto statement_identifier ;) })) }))) (expression_statement "sqlite3_finalize(pStmt);" (call_expression "sqlite3_finalize(pStmt)" identifier (argument_list "(pStmt)" ( identifier ))) ;) (expression_statement "pStmt = (sqlite3_stmt *)0x0;" (assignment_expression "pStmt = (sqlite3_stmt *)0x0" identifier = (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) })) }) (else_clause "else {\nLAB_0013d116:\n          local_108 = (sqlite3_stmt *)0x0;\n          local_114 = (sqlite3_stmt *)0x0;\n          psVar19 = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)0x0;\n        }" else (compound_statement "{\nLAB_0013d116:\n          local_108 = (sqlite3_stmt *)0x0;\n          local_114 = (sqlite3_stmt *)0x0;\n          psVar19 = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)0x0;\n        }" { (labeled_statement "LAB_0013d116:\n          local_108 = (sqlite3_stmt *)0x0;" statement_identifier : (expression_statement "local_108 = (sqlite3_stmt *)0x0;" (assignment_expression "local_108 = (sqlite3_stmt *)0x0" identifier = (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_114 = (sqlite3_stmt *)0x0;" (assignment_expression "local_114 = (sqlite3_stmt *)0x0" identifier = (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "psVar19 = (sqlite3_stmt *)0x0;" (assignment_expression "psVar19 = (sqlite3_stmt *)0x0" identifier = (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = (sqlite3_stmt *)0x0;" (assignment_expression "local_f0 = (sqlite3_stmt *)0x0" identifier = (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (if_statement "if ((char)pVtab[0x13].nRef != '\0') {\n          fts3UpdateDocTotals(&rc_2,(Fts3Table *)pVtab,(u32 *)local_114,(u32 *)local_108,\n                              (int)local_f0);\n        }" if (parenthesized_expression "((char)pVtab[0x13].nRef != '\0')" ( (binary_expression "(char)pVtab[0x13].nRef != '\0'" (cast_expression "(char)pVtab[0x13].nRef" ( (type_descriptor "char" primitive_type) ) (field_expression "pVtab[0x13].nRef" (subscript_expression "pVtab[0x13]" identifier [ number_literal ]) . field_identifier)) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          fts3UpdateDocTotals(&rc_2,(Fts3Table *)pVtab,(u32 *)local_114,(u32 *)local_108,\n                              (int)local_f0);\n        }" { (expression_statement "fts3UpdateDocTotals(&rc_2,(Fts3Table *)pVtab,(u32 *)local_114,(u32 *)local_108,\n                              (int)local_f0);" (call_expression "fts3UpdateDocTotals(&rc_2,(Fts3Table *)pVtab,(u32 *)local_114,(u32 *)local_108,\n                              (int)local_f0)" identifier (argument_list "(&rc_2,(Fts3Table *)pVtab,(u32 *)local_114,(u32 *)local_108,\n                              (int)local_f0)" ( (pointer_expression "&rc_2" & identifier) , (cast_expression "(Fts3Table *)pVtab" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(u32 *)local_114" ( (type_descriptor "u32 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(u32 *)local_108" ( (type_descriptor "u32 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) })) (expression_statement "sqlite3_free(psVar19);" (call_expression "sqlite3_free(psVar19)" identifier (argument_list "(psVar19)" ( identifier ))) ;) (if_statement "if ((pStmt != (sqlite3_stmt *)0x0) && (iVar8 = sqlite3_finalize(pStmt), rc_2 == 0)) {\n          rc_2 = iVar8;\n        }" if (parenthesized_expression "((pStmt != (sqlite3_stmt *)0x0) && (iVar8 = sqlite3_finalize(pStmt), rc_2 == 0))" ( (binary_expression "(pStmt != (sqlite3_stmt *)0x0) && (iVar8 = sqlite3_finalize(pStmt), rc_2 == 0)" (parenthesized_expression "(pStmt != (sqlite3_stmt *)0x0)" ( (binary_expression "pStmt != (sqlite3_stmt *)0x0" identifier != (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar8 = sqlite3_finalize(pStmt), rc_2 == 0)" ( (comma_expression "iVar8 = sqlite3_finalize(pStmt), rc_2 == 0" (assignment_expression "iVar8 = sqlite3_finalize(pStmt)" identifier = (call_expression "sqlite3_finalize(pStmt)" identifier (argument_list "(pStmt)" ( identifier )))) , (binary_expression "rc_2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          rc_2 = iVar8;\n        }" { (expression_statement "rc_2 = iVar8;" (assignment_expression "rc_2 = iVar8" identifier = identifier) ;) })) (expression_statement "local_f0 = (sqlite3_stmt *)rc_2;" (assignment_expression "local_f0 = (sqlite3_stmt *)rc_2" identifier = (cast_expression "(sqlite3_stmt *)rc_2" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n        if (iVar8 != 0xf) {\n          if (6 < iVar8) {\n            iVar20 = sqlite3_strnicmp(pcVar9,"merge=",6);\n            if (iVar20 == 0) goto LAB_0013be74;\n            if (10 < iVar8) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar8 = sqlite3_strnicmp(pcVar9,"integrity-check",0xf);\n        if (iVar8 == 0) {\n          pAllLangid = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x1b,&pAllLangid,(sqlite3_value **)pRowid);\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x17].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x15].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar8 = sqlite3_step(pAllLangid);\n                psVar19 = pAllLangid;\n                if (iVar8 != 100) {\n                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);\n                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n                  iVar8 = (pVtab[3].pModule)->iVersion;\n                  pStmt_3 = (sqlite3_stmt *)0x0;\n                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n                  if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  sqlite3_finalize(pStmt_3);\n                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n                  local_f0 = (sqlite3_stmt *)0x7;\n                  goto LAB_0013ba71;\n                }\n                pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n                iVar32 = sqlite3VdbeIntValue(pMVar10);\n                uVar11 = (uint)iVar32;\n                iVar8 = 0x13c3a3;\n                columnMallocFailure(psVar19);\n              } while ((int)pVtab[0x15].pModule < 1);\n              local_114 = (sqlite3_stmt *)0x0;\n              local_110 = 0;\n              do {\n                rc_2 = 0;\n                local_64 = (Fts3Table *)0x0;\n                local_60 = 0;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                for (iVar20 = 0xe; iVar20 != 0; iVar20 = iVar20 + -1) {\n                  pFVar29->apSegment = (Fts3SegReader **)0x0;\n                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);\n                }\n                local_5c = 0x13;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                local_12c = (sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt);\n                if ((local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  iVar8 = 0x13c8ad;\n                  local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);\n                  pOVar5 = local_28;\n                  if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                psVar19 = pStmt;\n                if (0 < (int)local_54) {\n                  iVar20 = 0;\n                  pVVar12 = local_54;\n                  do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);\n                }\nLAB_0013c5e2:\n                if (psVar19 != (sqlite3_stmt *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                pcVar9 = local_48;\n                if (local_48 != (char *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                bVar30 = 0xfffffffe < local_114;\n                local_114 = (sqlite3_stmt *)((int)local_114 + 1);\n                local_110 = local_110 + (uint)bVar30;\n              } while ((int)local_114 < (int)pVtab[0x15].pModule);\n            } while (local_12c == (sqlite3_stmt *)0x0);\n            sqlite3_reset(pAllLangid);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n          if (iVar8 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar8 = sqlite3_strnicmp(pcVar9,"automerge=",10);\n          if (iVar8 != 0) goto LAB_0013ba5f;\n          rc_2 = 0;\n          pcVar21 = pcVar9 + 10;\n          pStmt = (sqlite3_stmt *)0x0;\n          cVar6 = pcVar9[10];\n          psVar38 = (sqlite3_module *)0x0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar21 = pcVar21 + 1;\n              psVar38 = (sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10);\n              cVar6 = *pcVar21;\n              if (9 < (byte)(cVar6 - 0x30U)) break;\n            } while ((int)psVar38 < 0xccccccb);\n            if ((psVar38 == (sqlite3_module *)0x1) || (0x10 < (int)psVar38)) {\n              pVtab[4].pModule = (sqlite3_module *)0x8;\n            }\n            else {\n              pVtab[4].pModule = psVar38;\n            }\n          }\n          else {\n            pVtab[4].pModule = (sqlite3_module *)0x0;\n          }\n          if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n            fts3DbExec(&rc_2,(sqlite3 *)pVtab[1].pModule,\n                       "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                       ,pVtab[1].nRef,pVtab[1].zErrMsg);\n            local_f0 = (sqlite3_stmt *)rc_2;\n            if (rc_2 != 0) goto LAB_0013c0e0;\n            *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n          }\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x17,&pStmt,(sqlite3_value **)pRowid);\n          rc_2 = (int)local_f0;\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pStmt,2,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pStmt,(int)pVtab[4].pModule,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_step(pStmt);\n            local_f0 = (sqlite3_stmt *)sqlite3_reset(pStmt);\n          }\n        }\n      }" else (compound_statement "{\n        if (iVar8 != 0xf) {\n          if (6 < iVar8) {\n            iVar20 = sqlite3_strnicmp(pcVar9,"merge=",6);\n            if (iVar20 == 0) goto LAB_0013be74;\n            if (10 < iVar8) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar8 = sqlite3_strnicmp(pcVar9,"integrity-check",0xf);\n        if (iVar8 == 0) {\n          pAllLangid = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x1b,&pAllLangid,(sqlite3_value **)pRowid);\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x17].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x15].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar8 = sqlite3_step(pAllLangid);\n                psVar19 = pAllLangid;\n                if (iVar8 != 100) {\n                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);\n                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n                  iVar8 = (pVtab[3].pModule)->iVersion;\n                  pStmt_3 = (sqlite3_stmt *)0x0;\n                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n                  if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  sqlite3_finalize(pStmt_3);\n                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n                  local_f0 = (sqlite3_stmt *)0x7;\n                  goto LAB_0013ba71;\n                }\n                pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n                iVar32 = sqlite3VdbeIntValue(pMVar10);\n                uVar11 = (uint)iVar32;\n                iVar8 = 0x13c3a3;\n                columnMallocFailure(psVar19);\n              } while ((int)pVtab[0x15].pModule < 1);\n              local_114 = (sqlite3_stmt *)0x0;\n              local_110 = 0;\n              do {\n                rc_2 = 0;\n                local_64 = (Fts3Table *)0x0;\n                local_60 = 0;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                for (iVar20 = 0xe; iVar20 != 0; iVar20 = iVar20 + -1) {\n                  pFVar29->apSegment = (Fts3SegReader **)0x0;\n                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);\n                }\n                local_5c = 0x13;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                local_12c = (sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt);\n                if ((local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  iVar8 = 0x13c8ad;\n                  local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);\n                  pOVar5 = local_28;\n                  if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                psVar19 = pStmt;\n                if (0 < (int)local_54) {\n                  iVar20 = 0;\n                  pVVar12 = local_54;\n                  do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);\n                }\nLAB_0013c5e2:\n                if (psVar19 != (sqlite3_stmt *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                pcVar9 = local_48;\n                if (local_48 != (char *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                bVar30 = 0xfffffffe < local_114;\n                local_114 = (sqlite3_stmt *)((int)local_114 + 1);\n                local_110 = local_110 + (uint)bVar30;\n              } while ((int)local_114 < (int)pVtab[0x15].pModule);\n            } while (local_12c == (sqlite3_stmt *)0x0);\n            sqlite3_reset(pAllLangid);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n          if (iVar8 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar8 = sqlite3_strnicmp(pcVar9,"automerge=",10);\n          if (iVar8 != 0) goto LAB_0013ba5f;\n          rc_2 = 0;\n          pcVar21 = pcVar9 + 10;\n          pStmt = (sqlite3_stmt *)0x0;\n          cVar6 = pcVar9[10];\n          psVar38 = (sqlite3_module *)0x0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar21 = pcVar21 + 1;\n              psVar38 = (sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10);\n              cVar6 = *pcVar21;\n              if (9 < (byte)(cVar6 - 0x30U)) break;\n            } while ((int)psVar38 < 0xccccccb);\n            if ((psVar38 == (sqlite3_module *)0x1) || (0x10 < (int)psVar38)) {\n              pVtab[4].pModule = (sqlite3_module *)0x8;\n            }\n            else {\n              pVtab[4].pModule = psVar38;\n            }\n          }\n          else {\n            pVtab[4].pModule = (sqlite3_module *)0x0;\n          }\n          if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n            fts3DbExec(&rc_2,(sqlite3 *)pVtab[1].pModule,\n                       "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                       ,pVtab[1].nRef,pVtab[1].zErrMsg);\n            local_f0 = (sqlite3_stmt *)rc_2;\n            if (rc_2 != 0) goto LAB_0013c0e0;\n            *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n          }\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x17,&pStmt,(sqlite3_value **)pRowid);\n          rc_2 = (int)local_f0;\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pStmt,2,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pStmt,(int)pVtab[4].pModule,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_step(pStmt);\n            local_f0 = (sqlite3_stmt *)sqlite3_reset(pStmt);\n          }\n        }\n      }" { (if_statement "if (iVar8 != 0xf) {\n          if (6 < iVar8) {\n            iVar20 = sqlite3_strnicmp(pcVar9,"merge=",6);\n            if (iVar20 == 0) goto LAB_0013be74;\n            if (10 < iVar8) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }" if (parenthesized_expression "(iVar8 != 0xf)" ( (binary_expression "iVar8 != 0xf" identifier != number_literal) )) (compound_statement "{\n          if (6 < iVar8) {\n            iVar20 = sqlite3_strnicmp(pcVar9,"merge=",6);\n            if (iVar20 == 0) goto LAB_0013be74;\n            if (10 < iVar8) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }" { (if_statement "if (6 < iVar8) {\n            iVar20 = sqlite3_strnicmp(pcVar9,"merge=",6);\n            if (iVar20 == 0) goto LAB_0013be74;\n            if (10 < iVar8) goto LAB_0013c124;\n          }" if (parenthesized_expression "(6 < iVar8)" ( (binary_expression "6 < iVar8" number_literal < identifier) )) (compound_statement "{\n            iVar20 = sqlite3_strnicmp(pcVar9,"merge=",6);\n            if (iVar20 == 0) goto LAB_0013be74;\n            if (10 < iVar8) goto LAB_0013c124;\n          }" { (expression_statement "iVar20 = sqlite3_strnicmp(pcVar9,"merge=",6);" (assignment_expression "iVar20 = sqlite3_strnicmp(pcVar9,"merge=",6)" identifier = (call_expression "sqlite3_strnicmp(pcVar9,"merge=",6)" identifier (argument_list "(pcVar9,"merge=",6)" ( identifier , (string_literal ""merge="" " string_content ") , number_literal )))) ;) (if_statement "if (iVar20 == 0) goto LAB_0013be74;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013be74;" goto statement_identifier ;)) (if_statement "if (10 < iVar8) goto LAB_0013c124;" if (parenthesized_expression "(10 < iVar8)" ( (binary_expression "10 < iVar8" number_literal < identifier) )) (goto_statement "goto LAB_0013c124;" goto statement_identifier ;)) })) (goto_statement "goto LAB_0013ba5f;" goto statement_identifier ;) })) (expression_statement "iVar8 = sqlite3_strnicmp(pcVar9,"integrity-check",0xf);" (assignment_expression "iVar8 = sqlite3_strnicmp(pcVar9,"integrity-check",0xf)" identifier = (call_expression "sqlite3_strnicmp(pcVar9,"integrity-check",0xf)" identifier (argument_list "(pcVar9,"integrity-check",0xf)" ( identifier , (string_literal ""integrity-check"" " string_content ") , number_literal )))) ;) (if_statement "if (iVar8 == 0) {\n          pAllLangid = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x1b,&pAllLangid,(sqlite3_value **)pRowid);\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x17].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x15].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar8 = sqlite3_step(pAllLangid);\n                psVar19 = pAllLangid;\n                if (iVar8 != 100) {\n                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);\n                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n                  iVar8 = (pVtab[3].pModule)->iVersion;\n                  pStmt_3 = (sqlite3_stmt *)0x0;\n                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n                  if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  sqlite3_finalize(pStmt_3);\n                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n                  local_f0 = (sqlite3_stmt *)0x7;\n                  goto LAB_0013ba71;\n                }\n                pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n                iVar32 = sqlite3VdbeIntValue(pMVar10);\n                uVar11 = (uint)iVar32;\n                iVar8 = 0x13c3a3;\n                columnMallocFailure(psVar19);\n              } while ((int)pVtab[0x15].pModule < 1);\n              local_114 = (sqlite3_stmt *)0x0;\n              local_110 = 0;\n              do {\n                rc_2 = 0;\n                local_64 = (Fts3Table *)0x0;\n                local_60 = 0;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                for (iVar20 = 0xe; iVar20 != 0; iVar20 = iVar20 + -1) {\n                  pFVar29->apSegment = (Fts3SegReader **)0x0;\n                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);\n                }\n                local_5c = 0x13;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                local_12c = (sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt);\n                if ((local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  iVar8 = 0x13c8ad;\n                  local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);\n                  pOVar5 = local_28;\n                  if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                psVar19 = pStmt;\n                if (0 < (int)local_54) {\n                  iVar20 = 0;\n                  pVVar12 = local_54;\n                  do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);\n                }\nLAB_0013c5e2:\n                if (psVar19 != (sqlite3_stmt *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                pcVar9 = local_48;\n                if (local_48 != (char *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                bVar30 = 0xfffffffe < local_114;\n                local_114 = (sqlite3_stmt *)((int)local_114 + 1);\n                local_110 = local_110 + (uint)bVar30;\n              } while ((int)local_114 < (int)pVtab[0x15].pModule);\n            } while (local_12c == (sqlite3_stmt *)0x0);\n            sqlite3_reset(pAllLangid);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n          if (iVar8 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar8 = sqlite3_strnicmp(pcVar9,"automerge=",10);\n          if (iVar8 != 0) goto LAB_0013ba5f;\n          rc_2 = 0;\n          pcVar21 = pcVar9 + 10;\n          pStmt = (sqlite3_stmt *)0x0;\n          cVar6 = pcVar9[10];\n          psVar38 = (sqlite3_module *)0x0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar21 = pcVar21 + 1;\n              psVar38 = (sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10);\n              cVar6 = *pcVar21;\n              if (9 < (byte)(cVar6 - 0x30U)) break;\n            } while ((int)psVar38 < 0xccccccb);\n            if ((psVar38 == (sqlite3_module *)0x1) || (0x10 < (int)psVar38)) {\n              pVtab[4].pModule = (sqlite3_module *)0x8;\n            }\n            else {\n              pVtab[4].pModule = psVar38;\n            }\n          }\n          else {\n            pVtab[4].pModule = (sqlite3_module *)0x0;\n          }\n          if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n            fts3DbExec(&rc_2,(sqlite3 *)pVtab[1].pModule,\n                       "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                       ,pVtab[1].nRef,pVtab[1].zErrMsg);\n            local_f0 = (sqlite3_stmt *)rc_2;\n            if (rc_2 != 0) goto LAB_0013c0e0;\n            *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n          }\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x17,&pStmt,(sqlite3_value **)pRowid);\n          rc_2 = (int)local_f0;\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pStmt,2,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pStmt,(int)pVtab[4].pModule,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_step(pStmt);\n            local_f0 = (sqlite3_stmt *)sqlite3_reset(pStmt);\n          }\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          pAllLangid = (sqlite3_stmt *)0x0;\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x1b,&pAllLangid,(sqlite3_value **)pRowid);\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x17].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x15].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar8 = sqlite3_step(pAllLangid);\n                psVar19 = pAllLangid;\n                if (iVar8 != 100) {\n                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);\n                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n                  iVar8 = (pVtab[3].pModule)->iVersion;\n                  pStmt_3 = (sqlite3_stmt *)0x0;\n                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n                  if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  sqlite3_finalize(pStmt_3);\n                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n                  local_f0 = (sqlite3_stmt *)0x7;\n                  goto LAB_0013ba71;\n                }\n                pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n                iVar32 = sqlite3VdbeIntValue(pMVar10);\n                uVar11 = (uint)iVar32;\n                iVar8 = 0x13c3a3;\n                columnMallocFailure(psVar19);\n              } while ((int)pVtab[0x15].pModule < 1);\n              local_114 = (sqlite3_stmt *)0x0;\n              local_110 = 0;\n              do {\n                rc_2 = 0;\n                local_64 = (Fts3Table *)0x0;\n                local_60 = 0;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                for (iVar20 = 0xe; iVar20 != 0; iVar20 = iVar20 + -1) {\n                  pFVar29->apSegment = (Fts3SegReader **)0x0;\n                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);\n                }\n                local_5c = 0x13;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                local_12c = (sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt);\n                if ((local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  iVar8 = 0x13c8ad;\n                  local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);\n                  pOVar5 = local_28;\n                  if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                psVar19 = pStmt;\n                if (0 < (int)local_54) {\n                  iVar20 = 0;\n                  pVVar12 = local_54;\n                  do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);\n                }\nLAB_0013c5e2:\n                if (psVar19 != (sqlite3_stmt *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                pcVar9 = local_48;\n                if (local_48 != (char *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                bVar30 = 0xfffffffe < local_114;\n                local_114 = (sqlite3_stmt *)((int)local_114 + 1);\n                local_110 = local_110 + (uint)bVar30;\n              } while ((int)local_114 < (int)pVtab[0x15].pModule);\n            } while (local_12c == (sqlite3_stmt *)0x0);\n            sqlite3_reset(pAllLangid);\n            local_f0 = local_12c;\n          }\n        }" { (expression_statement "pAllLangid = (sqlite3_stmt *)0x0;" (assignment_expression "pAllLangid = (sqlite3_stmt *)0x0" identifier = (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x1b,&pAllLangid,(sqlite3_value **)pRowid);" (assignment_expression "local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x1b,&pAllLangid,(sqlite3_value **)pRowid)" identifier = (cast_expression "(sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x1b,&pAllLangid,(sqlite3_value **)pRowid)" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "fts3SqlStmt((Fts3Table *)pVtab,0x1b,&pAllLangid,(sqlite3_value **)pRowid)" identifier (argument_list "((Fts3Table *)pVtab,0x1b,&pAllLangid,(sqlite3_value **)pRowid)" ( (cast_expression "(Fts3Table *)pVtab" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (pointer_expression "&pAllLangid" & identifier) , (cast_expression "(sqlite3_value **)pRowid" ( (type_descriptor "sqlite3_value **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) ))))) ;) (if_statement "if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x17].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x15].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar8 = sqlite3_step(pAllLangid);\n                psVar19 = pAllLangid;\n                if (iVar8 != 100) {\n                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);\n                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n                  iVar8 = (pVtab[3].pModule)->iVersion;\n                  pStmt_3 = (sqlite3_stmt *)0x0;\n                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n                  if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  sqlite3_finalize(pStmt_3);\n                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n                  local_f0 = (sqlite3_stmt *)0x7;\n                  goto LAB_0013ba71;\n                }\n                pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n                iVar32 = sqlite3VdbeIntValue(pMVar10);\n                uVar11 = (uint)iVar32;\n                iVar8 = 0x13c3a3;\n                columnMallocFailure(psVar19);\n              } while ((int)pVtab[0x15].pModule < 1);\n              local_114 = (sqlite3_stmt *)0x0;\n              local_110 = 0;\n              do {\n                rc_2 = 0;\n                local_64 = (Fts3Table *)0x0;\n                local_60 = 0;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                for (iVar20 = 0xe; iVar20 != 0; iVar20 = iVar20 + -1) {\n                  pFVar29->apSegment = (Fts3SegReader **)0x0;\n                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);\n                }\n                local_5c = 0x13;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                local_12c = (sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt);\n                if ((local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  iVar8 = 0x13c8ad;\n                  local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);\n                  pOVar5 = local_28;\n                  if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                psVar19 = pStmt;\n                if (0 < (int)local_54) {\n                  iVar20 = 0;\n                  pVVar12 = local_54;\n                  do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);\n                }\nLAB_0013c5e2:\n                if (psVar19 != (sqlite3_stmt *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                pcVar9 = local_48;\n                if (local_48 != (char *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                bVar30 = 0xfffffffe < local_114;\n                local_114 = (sqlite3_stmt *)((int)local_114 + 1);\n                local_110 = local_110 + (uint)bVar30;\n              } while ((int)local_114 < (int)pVtab[0x15].pModule);\n            } while (local_12c == (sqlite3_stmt *)0x0);\n            sqlite3_reset(pAllLangid);\n            local_f0 = local_12c;\n          }" if (parenthesized_expression "(local_f0 == (sqlite3_stmt *)0x0)" ( (binary_expression "local_f0 == (sqlite3_stmt *)0x0" identifier == (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x17].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pAllLangid,(int)pVtab[0x15].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar8 = sqlite3_step(pAllLangid);\n                psVar19 = pAllLangid;\n                if (iVar8 != 100) {\n                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);\n                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n                  iVar8 = (pVtab[3].pModule)->iVersion;\n                  pStmt_3 = (sqlite3_stmt *)0x0;\n                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n                  if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  sqlite3_finalize(pStmt_3);\n                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n                  local_f0 = (sqlite3_stmt *)0x7;\n                  goto LAB_0013ba71;\n                }\n                pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n                iVar32 = sqlite3VdbeIntValue(pMVar10);\n                uVar11 = (uint)iVar32;\n                iVar8 = 0x13c3a3;\n                columnMallocFailure(psVar19);\n              } while ((int)pVtab[0x15].pModule < 1);\n              local_114 = (sqlite3_stmt *)0x0;\n              local_110 = 0;\n              do {\n                rc_2 = 0;\n                local_64 = (Fts3Table *)0x0;\n                local_60 = 0;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                for (iVar20 = 0xe; iVar20 != 0; iVar20 = iVar20 + -1) {\n                  pFVar29->apSegment = (Fts3SegReader **)0x0;\n                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);\n                }\n                local_5c = 0x13;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                local_12c = (sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt);\n                if ((local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  iVar8 = 0x13c8ad;\n                  local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);\n                  pOVar5 = local_28;\n                  if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                psVar19 = pStmt;\n                if (0 < (int)local_54) {\n                  iVar20 = 0;\n                  pVVar12 = local_54;\n                  do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);\n                }\nLAB_0013c5e2:\n                if (psVar19 != (sqlite3_stmt *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                pcVar9 = local_48;\n                if (local_48 != (char *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                bVar30 = 0xfffffffe < local_114;\n                local_114 = (sqlite3_stmt *)((int)local_114 + 1);\n                local_110 = local_110 + (uint)bVar30;\n              } while ((int)local_114 < (int)pVtab[0x15].pModule);\n            } while (local_12c == (sqlite3_stmt *)0x0);\n            sqlite3_reset(pAllLangid);\n            local_f0 = local_12c;\n          }" { (expression_statement "sqlite3_bind_int64(pAllLangid,(int)pVtab[0x17].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));" (call_expression "sqlite3_bind_int64(pAllLangid,(int)pVtab[0x17].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid))" identifier (argument_list "(pAllLangid,(int)pVtab[0x17].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid))" ( identifier , (cast_expression "(int)pVtab[0x17].pModule" ( (type_descriptor "int" primitive_type) ) (field_expression "pVtab[0x17].pModule" (subscript_expression "pVtab[0x17]" identifier [ number_literal ]) . field_identifier)) , (call_expression "CONCAT44(in_stack_fffffec8,pRowid)" identifier (argument_list "(in_stack_fffffec8,pRowid)" ( identifier , identifier ))) ))) ;) (expression_statement "sqlite3_bind_int64(pAllLangid,(int)pVtab[0x15].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid));" (call_expression "sqlite3_bind_int64(pAllLangid,(int)pVtab[0x15].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid))" identifier (argument_list "(pAllLangid,(int)pVtab[0x15].pModule,\n                               CONCAT44(in_stack_fffffec8,pRowid))" ( identifier , (cast_expression "(int)pVtab[0x15].pModule" ( (type_descriptor "int" primitive_type) ) (field_expression "pVtab[0x15].pModule" (subscript_expression "pVtab[0x15]" identifier [ number_literal ]) . field_identifier)) , (call_expression "CONCAT44(in_stack_fffffec8,pRowid)" identifier (argument_list "(in_stack_fffffec8,pRowid)" ( identifier , identifier ))) ))) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) (do_statement "do {\n              do {\n                iVar8 = sqlite3_step(pAllLangid);\n                psVar19 = pAllLangid;\n                if (iVar8 != 100) {\n                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);\n                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n                  iVar8 = (pVtab[3].pModule)->iVersion;\n                  pStmt_3 = (sqlite3_stmt *)0x0;\n                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n                  if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  sqlite3_finalize(pStmt_3);\n                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n                  local_f0 = (sqlite3_stmt *)0x7;\n                  goto LAB_0013ba71;\n                }\n                pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n                iVar32 = sqlite3VdbeIntValue(pMVar10);\n                uVar11 = (uint)iVar32;\n                iVar8 = 0x13c3a3;\n                columnMallocFailure(psVar19);\n              } while ((int)pVtab[0x15].pModule < 1);\n              local_114 = (sqlite3_stmt *)0x0;\n              local_110 = 0;\n              do {\n                rc_2 = 0;\n                local_64 = (Fts3Table *)0x0;\n                local_60 = 0;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                for (iVar20 = 0xe; iVar20 != 0; iVar20 = iVar20 + -1) {\n                  pFVar29->apSegment = (Fts3SegReader **)0x0;\n                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);\n                }\n                local_5c = 0x13;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                local_12c = (sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt);\n                if ((local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  iVar8 = 0x13c8ad;\n                  local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);\n                  pOVar5 = local_28;\n                  if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                psVar19 = pStmt;\n                if (0 < (int)local_54) {\n                  iVar20 = 0;\n                  pVVar12 = local_54;\n                  do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);\n                }\nLAB_0013c5e2:\n                if (psVar19 != (sqlite3_stmt *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                pcVar9 = local_48;\n                if (local_48 != (char *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                bVar30 = 0xfffffffe < local_114;\n                local_114 = (sqlite3_stmt *)((int)local_114 + 1);\n                local_110 = local_110 + (uint)bVar30;\n              } while ((int)local_114 < (int)pVtab[0x15].pModule);\n            } while (local_12c == (sqlite3_stmt *)0x0);" do (compound_statement "{\n              do {\n                iVar8 = sqlite3_step(pAllLangid);\n                psVar19 = pAllLangid;\n                if (iVar8 != 100) {\n                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);\n                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n                  iVar8 = (pVtab[3].pModule)->iVersion;\n                  pStmt_3 = (sqlite3_stmt *)0x0;\n                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n                  if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  sqlite3_finalize(pStmt_3);\n                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n                  local_f0 = (sqlite3_stmt *)0x7;\n                  goto LAB_0013ba71;\n                }\n                pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n                iVar32 = sqlite3VdbeIntValue(pMVar10);\n                uVar11 = (uint)iVar32;\n                iVar8 = 0x13c3a3;\n                columnMallocFailure(psVar19);\n              } while ((int)pVtab[0x15].pModule < 1);\n              local_114 = (sqlite3_stmt *)0x0;\n              local_110 = 0;\n              do {\n                rc_2 = 0;\n                local_64 = (Fts3Table *)0x0;\n                local_60 = 0;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                for (iVar20 = 0xe; iVar20 != 0; iVar20 = iVar20 + -1) {\n                  pFVar29->apSegment = (Fts3SegReader **)0x0;\n                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);\n                }\n                local_5c = 0x13;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                local_12c = (sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt);\n                if ((local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  iVar8 = 0x13c8ad;\n                  local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);\n                  pOVar5 = local_28;\n                  if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                psVar19 = pStmt;\n                if (0 < (int)local_54) {\n                  iVar20 = 0;\n                  pVVar12 = local_54;\n                  do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);\n                }\nLAB_0013c5e2:\n                if (psVar19 != (sqlite3_stmt *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                pcVar9 = local_48;\n                if (local_48 != (char *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                bVar30 = 0xfffffffe < local_114;\n                local_114 = (sqlite3_stmt *)((int)local_114 + 1);\n                local_110 = local_110 + (uint)bVar30;\n              } while ((int)local_114 < (int)pVtab[0x15].pModule);\n            }" { (do_statement "do {\n                iVar8 = sqlite3_step(pAllLangid);\n                psVar19 = pAllLangid;\n                if (iVar8 != 100) {\n                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);\n                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n                  iVar8 = (pVtab[3].pModule)->iVersion;\n                  pStmt_3 = (sqlite3_stmt *)0x0;\n                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n                  if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  sqlite3_finalize(pStmt_3);\n                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n                  local_f0 = (sqlite3_stmt *)0x7;\n                  goto LAB_0013ba71;\n                }\n                pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n                iVar32 = sqlite3VdbeIntValue(pMVar10);\n                uVar11 = (uint)iVar32;\n                iVar8 = 0x13c3a3;\n                columnMallocFailure(psVar19);\n              } while ((int)pVtab[0x15].pModule < 1);" do (compound_statement "{\n                iVar8 = sqlite3_step(pAllLangid);\n                psVar19 = pAllLangid;\n                if (iVar8 != 100) {\n                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);\n                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n                  iVar8 = (pVtab[3].pModule)->iVersion;\n                  pStmt_3 = (sqlite3_stmt *)0x0;\n                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n                  if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  sqlite3_finalize(pStmt_3);\n                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n                  local_f0 = (sqlite3_stmt *)0x7;\n                  goto LAB_0013ba71;\n                }\n                pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n                iVar32 = sqlite3VdbeIntValue(pMVar10);\n                uVar11 = (uint)iVar32;\n                iVar8 = 0x13c3a3;\n                columnMallocFailure(psVar19);\n              }" { (expression_statement "iVar8 = sqlite3_step(pAllLangid);" (assignment_expression "iVar8 = sqlite3_step(pAllLangid)" identifier = (call_expression "sqlite3_step(pAllLangid)" identifier (argument_list "(pAllLangid)" ( identifier )))) ;) (expression_statement "psVar19 = pAllLangid;" (assignment_expression "psVar19 = pAllLangid" identifier = identifier) ;) (if_statement "if (iVar8 != 100) {\n                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);\n                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n                  iVar8 = (pVtab[3].pModule)->iVersion;\n                  pStmt_3 = (sqlite3_stmt *)0x0;\n                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n                  if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  sqlite3_finalize(pStmt_3);\n                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n                  local_f0 = (sqlite3_stmt *)0x7;\n                  goto LAB_0013ba71;\n                }" if (parenthesized_expression "(iVar8 != 100)" ( (binary_expression "iVar8 != 100" identifier != number_literal) )) (compound_statement "{\n                  local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);\n                  if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;\n                  iVar8 = (pVtab[3].pModule)->iVersion;\n                  pStmt_3 = (sqlite3_stmt *)0x0;\n                  pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);\n                  if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  sqlite3_finalize(pStmt_3);\n                  pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n                  local_f0 = (sqlite3_stmt *)0x7;\n                  goto LAB_0013ba71;\n                }" { (expression_statement "local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid);" (assignment_expression "local_f0 = (sqlite3_stmt *)sqlite3_reset(pAllLangid)" identifier = (cast_expression "(sqlite3_stmt *)sqlite3_reset(pAllLangid)" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_reset(pAllLangid)" identifier (argument_list "(pAllLangid)" ( identifier ))))) ;) (if_statement "if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013c0e0;" if (parenthesized_expression "(local_f0 != (sqlite3_stmt *)0x0)" ( (binary_expression "local_f0 != (sqlite3_stmt *)0x0" identifier != (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013c0e0;" goto statement_identifier ;)) (expression_statement "iVar8 = (pVtab[3].pModule)->iVersion;" (assignment_expression "iVar8 = (pVtab[3].pModule)->iVersion" identifier = (field_expression "(pVtab[3].pModule)->iVersion" (parenthesized_expression "(pVtab[3].pModule)" ( (field_expression "pVtab[3].pModule" (subscript_expression "pVtab[3]" identifier [ number_literal ]) . field_identifier) )) -> field_identifier)) ;) (expression_statement "pStmt_3 = (sqlite3_stmt *)0x0;" (assignment_expression "pStmt_3 = (sqlite3_stmt *)0x0" identifier = (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef);" (assignment_expression "pcVar9 = sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef)" identifier = (call_expression "sqlite3_mprintf("SELECT %s",pVtab[0x12].nRef)" identifier (argument_list "("SELECT %s",pVtab[0x12].nRef)" ( (string_literal ""SELECT %s"" " string_content ") , (field_expression "pVtab[0x12].nRef" (subscript_expression "pVtab[0x12]" identifier [ number_literal ]) . field_identifier) )))) ;) (if_statement "if (pcVar9 != (char *)0x0) {\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }" if (parenthesized_expression "(pcVar9 != (char *)0x0)" ( (binary_expression "pcVar9 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);\n                    sqlite3_free(pcVar9);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    psVar19 = local_f0;\n                    psVar26 = pStmt_3;\n                    if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }" { (expression_statement "local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid);" (assignment_expression "local_f0 = (sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid)" identifier = (cast_expression "(sqlite3_stmt *)\n                               sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid)" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3LockAndPrepare\n                                         ((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid)" identifier (argument_list "((sqlite3 *)pVtab[1].pModule,pcVar9,0x80,0,(Vdbe *)&pStmt_3\n                                          ,(sqlite3_stmt **)0x0,(char **)pRowid)" ( (cast_expression "(sqlite3 *)pVtab[1].pModule" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVtab[1].pModule" (subscript_expression "pVtab[1]" identifier [ number_literal ]) . field_identifier)) , identifier , number_literal , number_literal , (cast_expression "(Vdbe *)&pStmt_3" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pStmt_3" & identifier)) , (cast_expression "(sqlite3_stmt **)0x0" ( (type_descriptor "sqlite3_stmt **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(char **)pRowid" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) ))))) ;) (expression_statement "sqlite3_free(pcVar9);" (call_expression "sqlite3_free(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (expression_statement "psVar19 = local_f0;" (assignment_expression "psVar19 = local_f0" identifier = identifier) ;) (expression_statement "psVar26 = pStmt_3;" (assignment_expression "psVar26 = pStmt_3" identifier = identifier) ;) (if_statement "if (local_f0 != (sqlite3_stmt *)0x0) goto LAB_0013d4fe;" if (parenthesized_expression "(local_f0 != (sqlite3_stmt *)0x0)" ( (binary_expression "local_f0 != (sqlite3_stmt *)0x0" identifier != (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013d4fe;" goto statement_identifier ;)) (goto_statement "goto LAB_0013d234;" goto statement_identifier ;) })) (expression_statement "sqlite3_finalize(pStmt_3);" (call_expression "sqlite3_finalize(pStmt_3)" identifier (argument_list "(pStmt_3)" ( identifier ))) ;) (expression_statement "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;" (assignment_expression "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg" identifier = (cast_expression "(sqlite3_blob *)pVtab[0x14].zErrMsg" ( (type_descriptor "sqlite3_blob *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVtab[0x14].zErrMsg" (subscript_expression "pVtab[0x14]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "local_f0 = (sqlite3_stmt *)0x7;" (assignment_expression "local_f0 = (sqlite3_stmt *)0x7" identifier = (cast_expression "(sqlite3_stmt *)0x7" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) })) (expression_statement "pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);" (assignment_expression "pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8)" identifier = (call_expression "columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8)" identifier (argument_list "((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8)" ( (cast_expression "(sqlite3_stmt *)pRowid" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)in_stack_fffffec8" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "iVar32 = sqlite3VdbeIntValue(pMVar10);" (assignment_expression "iVar32 = sqlite3VdbeIntValue(pMVar10)" identifier = (call_expression "sqlite3VdbeIntValue(pMVar10)" identifier (argument_list "(pMVar10)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)iVar32;" (assignment_expression "uVar11 = (uint)iVar32" identifier = (cast_expression "(uint)iVar32" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar8 = 0x13c3a3;" (assignment_expression "iVar8 = 0x13c3a3" identifier = number_literal) ;) (expression_statement "columnMallocFailure(psVar19);" (call_expression "columnMallocFailure(psVar19)" identifier (argument_list "(psVar19)" ( identifier ))) ;) }) while (parenthesized_expression "((int)pVtab[0x15].pModule < 1)" ( (binary_expression "(int)pVtab[0x15].pModule < 1" (cast_expression "(int)pVtab[0x15].pModule" ( (type_descriptor "int" primitive_type) ) (field_expression "pVtab[0x15].pModule" (subscript_expression "pVtab[0x15]" identifier [ number_literal ]) . field_identifier)) < number_literal) )) ;) (expression_statement "local_114 = (sqlite3_stmt *)0x0;" (assignment_expression "local_114 = (sqlite3_stmt *)0x0" identifier = (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_110 = 0;" (assignment_expression "local_110 = 0" identifier = number_literal) ;) (do_statement "do {\n                rc_2 = 0;\n                local_64 = (Fts3Table *)0x0;\n                local_60 = 0;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                for (iVar20 = 0xe; iVar20 != 0; iVar20 = iVar20 + -1) {\n                  pFVar29->apSegment = (Fts3SegReader **)0x0;\n                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);\n                }\n                local_5c = 0x13;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                local_12c = (sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt);\n                if ((local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  iVar8 = 0x13c8ad;\n                  local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);\n                  pOVar5 = local_28;\n                  if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                psVar19 = pStmt;\n                if (0 < (int)local_54) {\n                  iVar20 = 0;\n                  pVVar12 = local_54;\n                  do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);\n                }\nLAB_0013c5e2:\n                if (psVar19 != (sqlite3_stmt *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                pcVar9 = local_48;\n                if (local_48 != (char *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                bVar30 = 0xfffffffe < local_114;\n                local_114 = (sqlite3_stmt *)((int)local_114 + 1);\n                local_110 = local_110 + (uint)bVar30;\n              } while ((int)local_114 < (int)pVtab[0x15].pModule);" do (compound_statement "{\n                rc_2 = 0;\n                local_64 = (Fts3Table *)0x0;\n                local_60 = 0;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                for (iVar20 = 0xe; iVar20 != 0; iVar20 = iVar20 + -1) {\n                  pFVar29->apSegment = (Fts3SegReader **)0x0;\n                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);\n                }\n                local_5c = 0x13;\n                pFVar29 = (Fts3MultiSegReader *)&pStmt;\n                local_12c = (sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt);\n                if ((local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  iVar8 = 0x13c8ad;\n                  local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);\n                  pOVar5 = local_28;\n                  if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                psVar19 = pStmt;\n                if (0 < (int)local_54) {\n                  iVar20 = 0;\n                  pVVar12 = local_54;\n                  do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);\n                }\nLAB_0013c5e2:\n                if (psVar19 != (sqlite3_stmt *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                pcVar9 = local_48;\n                if (local_48 != (char *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }\n                bVar30 = 0xfffffffe < local_114;\n                local_114 = (sqlite3_stmt *)((int)local_114 + 1);\n                local_110 = local_110 + (uint)bVar30;\n              }" { (expression_statement "rc_2 = 0;" (assignment_expression "rc_2 = 0" identifier = number_literal) ;) (expression_statement "local_64 = (Fts3Table *)0x0;" (assignment_expression "local_64 = (Fts3Table *)0x0" identifier = (cast_expression "(Fts3Table *)0x0" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "pFVar29 = (Fts3MultiSegReader *)&pStmt;" (assignment_expression "pFVar29 = (Fts3MultiSegReader *)&pStmt" identifier = (cast_expression "(Fts3MultiSegReader *)&pStmt" ( (type_descriptor "Fts3MultiSegReader *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pStmt" & identifier))) ;) (for_statement "for (iVar20 = 0xe; iVar20 != 0; iVar20 = iVar20 + -1) {\n                  pFVar29->apSegment = (Fts3SegReader **)0x0;\n                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);\n                }" for ( (assignment_expression "iVar20 = 0xe" identifier = number_literal) ; (binary_expression "iVar20 != 0" identifier != number_literal) ; (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ) (compound_statement "{\n                  pFVar29->apSegment = (Fts3SegReader **)0x0;\n                  pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);\n                }" { (expression_statement "pFVar29->apSegment = (Fts3SegReader **)0x0;" (assignment_expression "pFVar29->apSegment = (Fts3SegReader **)0x0" (field_expression "pFVar29->apSegment" identifier -> field_identifier) = (cast_expression "(Fts3SegReader **)0x0" ( (type_descriptor "Fts3SegReader **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4);" (assignment_expression "pFVar29 = (Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4)" identifier = (cast_expression "(Fts3MultiSegReader *)((int)pFVar29 + (uint)bVar31 * -8 + 4)" ( (type_descriptor "Fts3MultiSegReader *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pFVar29 + (uint)bVar31 * -8 + 4)" ( (binary_expression "(int)pFVar29 + (uint)bVar31 * -8 + 4" (binary_expression "(int)pFVar29 + (uint)bVar31 * -8" (cast_expression "(int)pFVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar31 * -8" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "local_5c = 0x13;" (assignment_expression "local_5c = 0x13" identifier = number_literal) ;) (expression_statement "pFVar29 = (Fts3MultiSegReader *)&pStmt;" (assignment_expression "pFVar29 = (Fts3MultiSegReader *)&pStmt" identifier = (cast_expression "(Fts3MultiSegReader *)&pStmt" ( (type_descriptor "Fts3MultiSegReader *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pStmt" & identifier))) ;) (expression_statement "local_12c = (sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt);" (assignment_expression "local_12c = (sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt)" identifier = (cast_expression "(sqlite3_stmt *)\n                            fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt)" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "fts3SegReaderCursor((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt)" identifier (argument_list "((Fts3Table *)pVtab,uVar11,(int)local_114,-2,\n                                                (char *)0x0,0,0,1,(Fts3MultiSegReader *)&pStmt)" ( (cast_expression "(Fts3Table *)pVtab" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(int)local_114" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , number_literal , number_literal , (cast_expression "(Fts3MultiSegReader *)&pStmt" ( (type_descriptor "Fts3MultiSegReader *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pStmt" & identifier)) ))))) ;) (if_statement "if ((local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  iVar8 = 0x13c8ad;\n                  local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);\n                  pOVar5 = local_28;\n                  if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }" if (parenthesized_expression "((local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0))" ( (binary_expression "(local_12c == (sqlite3_stmt *)0x0) &&\n                   (local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)" (parenthesized_expression "(local_12c == (sqlite3_stmt *)0x0)" ( (binary_expression "local_12c == (sqlite3_stmt *)0x0" identifier == (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0)" ( (comma_expression "local_4c = (Parse *)&rc_2,\n                   local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0" (assignment_expression "local_4c = (Parse *)&rc_2" identifier = (cast_expression "(Parse *)&rc_2" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&rc_2" & identifier))) , (comma_expression "local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8),\n                   local_12c == (sqlite3_stmt *)0x0" (assignment_expression "local_12c = (sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8)" identifier = (cast_expression "(sqlite3_stmt *)\n                               fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8)" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "fts3SegReaderStart(local_64,pFVar29,in_stack_fffffebc,iVar8)" identifier (argument_list "(local_64,pFVar29,in_stack_fffffebc,iVar8)" ( identifier , identifier , identifier , identifier ))))) , (binary_expression "local_12c == (sqlite3_stmt *)0x0" identifier == (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  iVar8 = 0x13c8ad;\n                  local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);\n                  pOVar5 = local_28;\n                  if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }" { (expression_statement "local_104 = 0;" (assignment_expression "local_104 = 0" identifier = number_literal) ;) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0013c8a0:\n                  iVar8 = 0x13c8ad;" statement_identifier : (expression_statement "iVar8 = 0x13c8ad;" (assignment_expression "iVar8 = 0x13c8ad" identifier = number_literal) ;)) (expression_statement "local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8);" (assignment_expression "local_12c = (sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8)" identifier = (cast_expression "(sqlite3_stmt *)\n                              sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8)" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3Fts3SegReaderStep((Fts3Table *)pRowid,in_stack_fffffec8)" identifier (argument_list "((Fts3Table *)pRowid,in_stack_fffffec8)" ( (cast_expression "(Fts3Table *)pRowid" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))))) ;) (expression_statement "pOVar5 = local_28;" (assignment_expression "pOVar5 = local_28" identifier = identifier) ;) (if_statement "if (local_12c == (sqlite3_stmt *)0x64) {\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }" if (parenthesized_expression "(local_12c == (sqlite3_stmt *)0x64)" ( (binary_expression "local_12c == (sqlite3_stmt *)0x64" identifier == (cast_expression "(sqlite3_stmt *)0x64" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    iDocid._0_4_ = (sqlite3 *)0x0;\n                    iDocid._4_4_ = 0;\n                    iCol._0_4_ = 0;\n                    puVar25 = &local_28->opcode + local_24;\n                    iCol._4_4_ = 0;\n                    puVar37 = puVar25;\n                    iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);\n                    pRowid = (sqlite_int64 *)0x0;\n                    pBuf = &pOVar5->opcode + iVar8;\n                    in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                    if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }" { (expression_statement "iDocid._0_4_ = (sqlite3 *)0x0;" (assignment_expression "iDocid._0_4_ = (sqlite3 *)0x0" (field_expression "iDocid._0_4_" identifier . field_identifier) = (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iDocid._4_4_ = 0;" (assignment_expression "iDocid._4_4_ = 0" (field_expression "iDocid._4_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "iCol._0_4_ = 0;" (assignment_expression "iCol._0_4_ = 0" (field_expression "iCol._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "puVar25 = &local_28->opcode + local_24;" (assignment_expression "puVar25 = &local_28->opcode + local_24" identifier = (binary_expression "&local_28->opcode + local_24" (pointer_expression "&local_28->opcode" & (field_expression "local_28->opcode" identifier -> field_identifier)) + identifier)) ;) (expression_statement "iCol._4_4_ = 0;" (assignment_expression "iCol._4_4_ = 0" (field_expression "iCol._4_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "puVar37 = puVar25;" (assignment_expression "puVar37 = puVar25" identifier = identifier) ;) (expression_statement "iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid);" (assignment_expression "iVar8 = sqlite3Fts3GetVarint((char *)local_28,&iDocid)" identifier = (call_expression "sqlite3Fts3GetVarint((char *)local_28,&iDocid)" identifier (argument_list "((char *)local_28,&iDocid)" ( (cast_expression "(char *)local_28" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&iDocid" & identifier) )))) ;) (expression_statement "pRowid = (sqlite_int64 *)0x0;" (assignment_expression "pRowid = (sqlite_int64 *)0x0" identifier = (cast_expression "(sqlite_int64 *)0x0" ( (type_descriptor "sqlite_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pBuf = &pOVar5->opcode + iVar8;" (assignment_expression "pBuf = &pOVar5->opcode + iVar8" identifier = (binary_expression "&pOVar5->opcode + iVar8" (pointer_expression "&pOVar5->opcode" & (field_expression "pOVar5->opcode" identifier -> field_identifier)) + identifier)) ;) (expression_statement "in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;" (assignment_expression "in_stack_fffffec8 = (Fts3MultiSegReader *)0x0" identifier = (cast_expression "(Fts3MultiSegReader *)0x0" ( (type_descriptor "Fts3MultiSegReader *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pBuf < puVar25) {\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }" if (parenthesized_expression "(pBuf < puVar25)" ( (binary_expression "pBuf < puVar25" identifier < identifier) )) (compound_statement "{\n                      while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }\n                    }" { (while_statement "while( true ) {\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                        iVal._0_4_ = (uint)*pBuf;\n                        if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }\n                        pBuf = pBuf + iVar8;\n                        if (puVar37 <= pBuf) break;\n                        if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }\n                      }" { (expression_statement "iVal._0_4_ = (uint)*pBuf;" (assignment_expression "iVal._0_4_ = (uint)*pBuf" (field_expression "iVal._0_4_" identifier . field_identifier) = (binary_expression "(uint)*pBuf" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if ((char)*pBuf < '\0') {\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }" if (parenthesized_expression "((char)*pBuf < '\0')" ( (binary_expression "(char)*pBuf < '\0'" (cast_expression "(char)*pBuf" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pBuf" * identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                          uVar14 = (uint)iVal & 0x7f;\n                          uVar27 = (uint)pBuf[1] << 7;\n                          iVal._0_4_ = uVar27 | uVar14;\n                          if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }\n                        }" { (expression_statement "uVar14 = (uint)iVal & 0x7f;" (assignment_expression "uVar14 = (uint)iVal & 0x7f" identifier = (binary_expression "(uint)iVal & 0x7f" (cast_expression "(uint)iVal" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar27 = (uint)pBuf[1] << 7;" (assignment_expression "uVar27 = (uint)pBuf[1] << 7" identifier = (binary_expression "(uint)pBuf[1] << 7" (cast_expression "(uint)pBuf[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pBuf[1]" identifier [ number_literal ])) << number_literal)) ;) (expression_statement "iVal._0_4_ = uVar27 | uVar14;" (assignment_expression "iVal._0_4_ = uVar27 | uVar14" (field_expression "iVal._0_4_" identifier . field_identifier) = (binary_expression "uVar27 | uVar14" identifier | identifier)) ;) (if_statement "if ((uVar27 & 0x4000) == 0) {\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }\n                          else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }" if (parenthesized_expression "((uVar27 & 0x4000) == 0)" ( (binary_expression "(uVar27 & 0x4000) == 0" (parenthesized_expression "(uVar27 & 0x4000)" ( (binary_expression "uVar27 & 0x4000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                            iVar8 = 2;\n                            iVal._4_4_ = 0;\n                          }" { (expression_statement "iVar8 = 2;" (assignment_expression "iVar8 = 2" identifier = number_literal) ;) (expression_statement "iVal._4_4_ = 0;" (assignment_expression "iVal._4_4_ = 0" (field_expression "iVal._4_4_" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }" else (compound_statement "{\n                            uVar14 = uVar27 & 0x3fff | uVar14;\n                            uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;\n                            iVal._0_4_ = uVar14 | uVar27;\n                            if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }\n                          }" { (expression_statement "uVar14 = uVar27 & 0x3fff | uVar14;" (assignment_expression "uVar14 = uVar27 & 0x3fff | uVar14" identifier = (binary_expression "uVar27 & 0x3fff | uVar14" (binary_expression "uVar27 & 0x3fff" identifier & number_literal) | identifier)) ;) (expression_statement "uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe;" (assignment_expression "uVar27 = (uint)(byte)*(u16 *)(pBuf + 2) << 0xe" identifier = (binary_expression "(uint)(byte)*(u16 *)(pBuf + 2) << 0xe" (binary_expression "(uint)(byte)*(u16 *)(pBuf + 2)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * (cast_expression "(u16 *)(pBuf + 2)" ( (type_descriptor "u16 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBuf + 2)" ( (binary_expression "pBuf + 2" identifier + number_literal) )))) << number_literal)) ;) (expression_statement "iVal._0_4_ = uVar14 | uVar27;" (assignment_expression "iVal._0_4_ = uVar14 | uVar27" (field_expression "iVal._0_4_" identifier . field_identifier) = (binary_expression "uVar14 | uVar27" identifier | identifier)) ;) (if_statement "if ((uVar27 & 0x200000) == 0) {\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }\n                            else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }" if (parenthesized_expression "((uVar27 & 0x200000) == 0)" ( (binary_expression "(uVar27 & 0x200000) == 0" (parenthesized_expression "(uVar27 & 0x200000)" ( (binary_expression "uVar27 & 0x200000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                              iVar8 = 3;\n                              iVal._4_4_ = 0;\n                            }" { (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "iVal._4_4_ = 0;" (assignment_expression "iVal._4_4_ = 0" (field_expression "iVal._4_4_" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }" else (compound_statement "{\n                              uVar14 = uVar14 | uVar27 & 0x1fffff;\n                              uVar27 = (uint)pBuf[3] << 0x15;\n                              iVal._0_4_ = uVar14 | uVar27;\n                              if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }\n                            }" { (expression_statement "uVar14 = uVar14 | uVar27 & 0x1fffff;" (assignment_expression "uVar14 = uVar14 | uVar27 & 0x1fffff" identifier = (binary_expression "uVar14 | uVar27 & 0x1fffff" identifier | (binary_expression "uVar27 & 0x1fffff" identifier & number_literal))) ;) (expression_statement "uVar27 = (uint)pBuf[3] << 0x15;" (assignment_expression "uVar27 = (uint)pBuf[3] << 0x15" identifier = (binary_expression "(uint)pBuf[3] << 0x15" (cast_expression "(uint)pBuf[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pBuf[3]" identifier [ number_literal ])) << number_literal)) ;) (expression_statement "iVal._0_4_ = uVar14 | uVar27;" (assignment_expression "iVal._0_4_ = uVar14 | uVar27" (field_expression "iVal._0_4_" identifier . field_identifier) = (binary_expression "uVar14 | uVar27" identifier | identifier)) ;) (if_statement "if ((uVar27 & 0x10000000) == 0) {\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }\n                              else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }" if (parenthesized_expression "((uVar27 & 0x10000000) == 0)" ( (binary_expression "(uVar27 & 0x10000000) == 0" (parenthesized_expression "(uVar27 & 0x10000000)" ( (binary_expression "uVar27 & 0x10000000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                                iVar8 = 4;\n                                iVal._4_4_ = 0;\n                              }" { (expression_statement "iVar8 = 4;" (assignment_expression "iVar8 = 4" identifier = number_literal) ;) (expression_statement "iVal._4_4_ = 0;" (assignment_expression "iVal._4_4_ = 0" (field_expression "iVal._4_4_" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }" else (compound_statement "{\n                                uVar14 = uVar14 | uVar27 & 0xfffffff;\n                                uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;\n                                uVar15 = uVar27 * 0x10000000;\n                                iVal._0_4_ = uVar14 + uVar15;\n                                iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);\n                                if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }\n                                iVar8 = (int)piVar35 - (int)pBuf;\n                              }" { (expression_statement "uVar14 = uVar14 | uVar27 & 0xfffffff;" (assignment_expression "uVar14 = uVar14 | uVar27 & 0xfffffff" identifier = (binary_expression "uVar14 | uVar27 & 0xfffffff" identifier | (binary_expression "uVar27 & 0xfffffff" identifier & number_literal))) ;) (expression_statement "uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f;" (assignment_expression "uVar27 = (byte)*(int *)(pBuf + 4) & 0x7f" identifier = (binary_expression "(byte)*(int *)(pBuf + 4) & 0x7f" (binary_expression "(byte)*(int *)(pBuf + 4)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(int *)(pBuf + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBuf + 4)" ( (binary_expression "pBuf + 4" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "uVar15 = uVar27 * 0x10000000;" (assignment_expression "uVar15 = uVar27 * 0x10000000" identifier = (binary_expression "uVar27 * 0x10000000" identifier * number_literal)) ;) (expression_statement "iVal._0_4_ = uVar14 + uVar15;" (assignment_expression "iVal._0_4_ = uVar14 + uVar15" (field_expression "iVal._0_4_" identifier . field_identifier) = (binary_expression "uVar14 + uVar15" identifier + identifier)) ;) (expression_statement "iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15);" (assignment_expression "iVal._4_4_ = (uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15)" (field_expression "iVal._4_4_" identifier . field_identifier) = (binary_expression "(uVar27 >> 4) + (uint)CARRY4(uVar14,uVar15)" (parenthesized_expression "(uVar27 >> 4)" ( (binary_expression "uVar27 >> 4" identifier >> number_literal) )) + (cast_expression "(uint)CARRY4(uVar14,uVar15)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar14,uVar15)" identifier (argument_list "(uVar14,uVar15)" ( identifier , identifier )))))) ;) (if_statement "if ((char)(byte)*(int *)(pBuf + 4) < '\0') {\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }\n                                else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }" if (parenthesized_expression "((char)(byte)*(int *)(pBuf + 4) < '\0')" ( (binary_expression "(char)(byte)*(int *)(pBuf + 4) < '\0'" (binary_expression "(char)(byte)*(int *)(pBuf + 4)" (cast_expression "(char)(byte)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(byte)" ( identifier ))) * (cast_expression "(int *)(pBuf + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBuf + 4)" ( (binary_expression "pBuf + 4" identifier + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                                  iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;\n                                  if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }\n                                }" { (expression_statement "iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8;" (assignment_expression "iVal._4_4_ = iVal._4_4_ + (pBuf[5] & 0x7f) * 8" (field_expression "iVal._4_4_" identifier . field_identifier) = (binary_expression "iVal._4_4_ + (pBuf[5] & 0x7f) * 8" (field_expression "iVal._4_4_" identifier . field_identifier) + (binary_expression "(pBuf[5] & 0x7f) * 8" (parenthesized_expression "(pBuf[5] & 0x7f)" ( (binary_expression "pBuf[5] & 0x7f" (subscript_expression "pBuf[5]" identifier [ number_literal ]) & number_literal) )) * number_literal))) ;) (if_statement "if ((char)pBuf[5] < '\0') {\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }\n                                  else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }" if (parenthesized_expression "((char)pBuf[5] < '\0')" ( (binary_expression "(char)pBuf[5] < '\0'" (cast_expression "(char)pBuf[5]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pBuf[5]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                                    iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;\n                                    if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }\n                                  }" { (expression_statement "iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400;" (assignment_expression "iVal._4_4_ = iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400" (field_expression "iVal._4_4_" identifier . field_identifier) = (binary_expression "iVal._4_4_ + (pBuf[6] & 0x7f) * 0x400" (field_expression "iVal._4_4_" identifier . field_identifier) + (binary_expression "(pBuf[6] & 0x7f) * 0x400" (parenthesized_expression "(pBuf[6] & 0x7f)" ( (binary_expression "pBuf[6] & 0x7f" (subscript_expression "pBuf[6]" identifier [ number_literal ]) & number_literal) )) * number_literal))) ;) (if_statement "if ((char)pBuf[6] < '\0') {\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }\n                                    else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }" if (parenthesized_expression "((char)pBuf[6] < '\0')" ( (binary_expression "(char)pBuf[6] < '\0'" (cast_expression "(char)pBuf[6]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pBuf[6]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                                      iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;\n                                      if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }\n                                    }" { (expression_statement "iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000;" (assignment_expression "iVal._4_4_ = iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000" (field_expression "iVal._4_4_" identifier . field_identifier) = (binary_expression "iVal._4_4_ + (pBuf[7] & 0x7f) * 0x20000" (field_expression "iVal._4_4_" identifier . field_identifier) + (binary_expression "(pBuf[7] & 0x7f) * 0x20000" (parenthesized_expression "(pBuf[7] & 0x7f)" ( (binary_expression "pBuf[7] & 0x7f" (subscript_expression "pBuf[7]" identifier [ number_literal ]) & number_literal) )) * number_literal))) ;) (if_statement "if ((char)pBuf[7] < '\0') {\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }\n                                      else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }" if (parenthesized_expression "((char)pBuf[7] < '\0')" ( (binary_expression "(char)pBuf[7] < '\0'" (cast_expression "(char)pBuf[7]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pBuf[7]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                                        iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;\n                                        if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }\n                                      }" { (expression_statement "iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000;" (assignment_expression "iVal._4_4_ = iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000" (field_expression "iVal._4_4_" identifier . field_identifier) = (binary_expression "iVal._4_4_ +\n                                                     ((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000" (field_expression "iVal._4_4_" identifier . field_identifier) + (binary_expression "((byte)*(int *)(pBuf + 8) & 0x7f) * 0x1000000" (parenthesized_expression "((byte)*(int *)(pBuf + 8) & 0x7f)" ( (binary_expression "(byte)*(int *)(pBuf + 8) & 0x7f" (binary_expression "(byte)*(int *)(pBuf + 8)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(int *)(pBuf + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBuf + 8)" ( (binary_expression "pBuf + 8" identifier + number_literal) )))) & number_literal) )) * number_literal))) ;) (if_statement "if ((char)(byte)*(int *)(pBuf + 8) < '\0') {\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }\n                                        else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }" if (parenthesized_expression "((char)(byte)*(int *)(pBuf + 8) < '\0')" ( (binary_expression "(char)(byte)*(int *)(pBuf + 8) < '\0'" (binary_expression "(char)(byte)*(int *)(pBuf + 8)" (cast_expression "(char)(byte)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(byte)" ( identifier ))) * (cast_expression "(int *)(pBuf + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBuf + 8)" ( (binary_expression "pBuf + 8" identifier + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                                          piVar35 = (int *)(pBuf + 10);\n                                          iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;\n                                        }" { (expression_statement "piVar35 = (int *)(pBuf + 10);" (assignment_expression "piVar35 = (int *)(pBuf + 10)" identifier = (cast_expression "(int *)(pBuf + 10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBuf + 10)" ( (binary_expression "pBuf + 10" identifier + number_literal) )))) ;) (expression_statement "iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000;" (assignment_expression "iVal._4_4_ = iVal._4_4_ + (uint)pBuf[9] * -0x80000000" (field_expression "iVal._4_4_" identifier . field_identifier) = (binary_expression "iVal._4_4_ + (uint)pBuf[9] * -0x80000000" (field_expression "iVal._4_4_" identifier . field_identifier) + (binary_expression "(uint)pBuf[9] * -0x80000000" (cast_expression "(uint)pBuf[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pBuf[9]" identifier [ number_literal ])) * number_literal))) ;) }) (else_clause "else {\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }" else (compound_statement "{\n                                          piVar35 = (int *)(pBuf + 9);\n                                        }" { (expression_statement "piVar35 = (int *)(pBuf + 9);" (assignment_expression "piVar35 = (int *)(pBuf + 9)" identifier = (cast_expression "(int *)(pBuf + 9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBuf + 9)" ( (binary_expression "pBuf + 9" identifier + number_literal) )))) ;) }))) }) (else_clause "else {\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }" else (compound_statement "{\n                                        piVar35 = (int *)(pBuf + 8);\n                                      }" { (expression_statement "piVar35 = (int *)(pBuf + 8);" (assignment_expression "piVar35 = (int *)(pBuf + 8)" identifier = (cast_expression "(int *)(pBuf + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBuf + 8)" ( (binary_expression "pBuf + 8" identifier + number_literal) )))) ;) }))) }) (else_clause "else {\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }" else (compound_statement "{\n                                      piVar35 = (int *)(pBuf + 7);\n                                    }" { (expression_statement "piVar35 = (int *)(pBuf + 7);" (assignment_expression "piVar35 = (int *)(pBuf + 7)" identifier = (cast_expression "(int *)(pBuf + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBuf + 7)" ( (binary_expression "pBuf + 7" identifier + number_literal) )))) ;) }))) }) (else_clause "else {\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }" else (compound_statement "{\n                                    piVar35 = (int *)(pBuf + 6);\n                                  }" { (expression_statement "piVar35 = (int *)(pBuf + 6);" (assignment_expression "piVar35 = (int *)(pBuf + 6)" identifier = (cast_expression "(int *)(pBuf + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBuf + 6)" ( (binary_expression "pBuf + 6" identifier + number_literal) )))) ;) }))) }) (else_clause "else {\n                                  piVar35 = (int *)(pBuf + 5);\n                                }" else (compound_statement "{\n                                  piVar35 = (int *)(pBuf + 5);\n                                }" { (expression_statement "piVar35 = (int *)(pBuf + 5);" (assignment_expression "piVar35 = (int *)(pBuf + 5)" identifier = (cast_expression "(int *)(pBuf + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBuf + 5)" ( (binary_expression "pBuf + 5" identifier + number_literal) )))) ;) }))) (expression_statement "iVar8 = (int)piVar35 - (int)pBuf;" (assignment_expression "iVar8 = (int)piVar35 - (int)pBuf" identifier = (binary_expression "(int)piVar35 - (int)pBuf" (cast_expression "(int)piVar35" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pBuf" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }))) }))) }))) }) (else_clause "else {\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }" else (compound_statement "{\n                          iVar8 = 1;\n                          iVal._4_4_ = 0;\n                        }" { (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) (expression_statement "iVal._4_4_ = 0;" (assignment_expression "iVal._4_4_ = 0" (field_expression "iVal._4_4_" identifier . field_identifier) = number_literal) ;) }))) (expression_statement "pBuf = pBuf + iVar8;" (assignment_expression "pBuf = pBuf + iVar8" identifier = (binary_expression "pBuf + iVar8" identifier + identifier)) ;) (if_statement "if (puVar37 <= pBuf) break;" if (parenthesized_expression "(puVar37 <= pBuf)" ( (binary_expression "puVar37 <= pBuf" identifier <= identifier) )) (break_statement "break;" break ;)) (if_statement "if (iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_) {\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }\n                        else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }" if (parenthesized_expression "(iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_)" ( (binary_expression "iVal._4_4_ == 0 && (uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_" (binary_expression "iVal._4_4_ == 0" (field_expression "iVal._4_4_" identifier . field_identifier) == number_literal) && (binary_expression "(uint)(1 < (uint)iVal) <= (uint)-iVal._4_4_" (call_expression "(uint)(1 < (uint)iVal)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < (uint)iVal)" ( (binary_expression "1 < (uint)iVal" number_literal < (cast_expression "(uint)iVal" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) <= (binary_expression "(uint)-iVal._4_4_" (parenthesized_expression "(uint)" ( identifier )) - (field_expression "iVal._4_4_" identifier . field_identifier)))) )) (compound_statement "{\n                          iCol._0_4_ = 0;\n                          iCol._4_4_ = 0;\n                          if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }\n                          pBuf = pBuf + iVar8;\n                          if (puVar37 <= pBuf) break;\n                          pRowid = (sqlite_int64 *)0x0;\n                          in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n                        }" { (expression_statement "iCol._0_4_ = 0;" (assignment_expression "iCol._0_4_ = 0" (field_expression "iCol._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "iCol._4_4_ = 0;" (assignment_expression "iCol._4_4_ = 0" (field_expression "iCol._4_4_" identifier . field_identifier) = number_literal) ;) (if_statement "if (iVal._4_4_ == 0 && (uint)iVal == 0) {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }\n                          else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }" if (parenthesized_expression "(iVal._4_4_ == 0 && (uint)iVal == 0)" ( (binary_expression "iVal._4_4_ == 0 && (uint)iVal == 0" (binary_expression "iVal._4_4_ == 0" (field_expression "iVal._4_4_" identifier . field_identifier) == number_literal) && (binary_expression "(uint)iVal == 0" (cast_expression "(uint)iVal" ( (type_descriptor "uint" type_identifier) ) identifier) == number_literal)) )) (compound_statement "{\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);\n                            bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);\n                            iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));\n                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;\n                          }" { (expression_statement "iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal);" (assignment_expression "iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iVal)" identifier = (call_expression "sqlite3Fts3GetVarint((char *)pBuf,&iVal)" identifier (argument_list "((char *)pBuf,&iVal)" ( (cast_expression "(char *)pBuf" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&iVal" & identifier) )))) ;) (expression_statement "bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal);" (assignment_expression "bVar30 = CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal)" identifier = (call_expression "CARRY4((uint)(sqlite3 *)iDocid,(uint)iVal)" identifier (argument_list "((uint)(sqlite3 *)iDocid,(uint)iVal)" ( (cast_expression "(uint)(sqlite3 *)iDocid" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(sqlite3 *)iDocid" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (cast_expression "(uint)iVal" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68));" (assignment_expression "iDocid._0_4_ = (sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68))" (field_expression "iDocid._0_4_" identifier . field_identifier) = (cast_expression "(sqlite3 *)\n                                           ((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68))" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68))" ( (binary_expression "(int)((sqlite3 *)iDocid)->aLimit + ((uint)iVal - 0x68)" (cast_expression "(int)((sqlite3 *)iDocid)->aLimit" ( (type_descriptor "int" primitive_type) ) (field_expression "((sqlite3 *)iDocid)->aLimit" (parenthesized_expression "((sqlite3 *)iDocid)" ( (cast_expression "(sqlite3 *)iDocid" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) + (parenthesized_expression "((uint)iVal - 0x68)" ( (binary_expression "(uint)iVal - 0x68" (cast_expression "(uint)iVal" ( (type_descriptor "uint" type_identifier) ) identifier) - number_literal) ))) )))) ;) (expression_statement "iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30;" (assignment_expression "iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (uint)bVar30" (field_expression "iDocid._4_4_" identifier . field_identifier) = (binary_expression "iDocid._4_4_ + iVal._4_4_ + (uint)bVar30" (binary_expression "iDocid._4_4_ + iVal._4_4_" (field_expression "iDocid._4_4_" identifier . field_identifier) + (field_expression "iVal._4_4_" identifier . field_identifier)) + (cast_expression "(uint)bVar30" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) (else_clause "else {\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }" else (compound_statement "{\n                            iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);\n                          }" { (expression_statement "iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol);" (assignment_expression "iVar8 = sqlite3Fts3GetVarint((char *)pBuf,&iCol)" identifier = (call_expression "sqlite3Fts3GetVarint((char *)pBuf,&iCol)" identifier (argument_list "((char *)pBuf,&iCol)" ( (cast_expression "(char *)pBuf" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&iCol" & identifier) )))) ;) }))) (expression_statement "pBuf = pBuf + iVar8;" (assignment_expression "pBuf = pBuf + iVar8" identifier = (binary_expression "pBuf + iVar8" identifier + identifier)) ;) (if_statement "if (puVar37 <= pBuf) break;" if (parenthesized_expression "(puVar37 <= pBuf)" ( (binary_expression "puVar37 <= pBuf" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "pRowid = (sqlite_int64 *)0x0;" (assignment_expression "pRowid = (sqlite_int64 *)0x0" identifier = (cast_expression "(sqlite_int64 *)0x0" ( (type_descriptor "sqlite_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;" (assignment_expression "in_stack_fffffec8 = (Fts3MultiSegReader *)0x0" identifier = (cast_expression "(Fts3MultiSegReader *)0x0" ( (type_descriptor "Fts3MultiSegReader *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }" else (compound_statement "{\n                          bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);\n                          pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));\n                          in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));\n                          uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;\n                          iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);\n                          uVar14 = uVar27 * 9 + (int)local_114;\n                          iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);\n                          uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;\n                          iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);\n                          uVar14 = (int)pRowid + uVar27 * 9;\n                          uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);\n                          if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }\n                          local_104 = local_104 ^ uVar14;\n                          local_100 = local_100 ^ uVar27;\n                        }" { (expression_statement "bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2);" (assignment_expression "bVar30 = CARRY4((uint)pRowid,(uint)iVal - 2)" identifier = (call_expression "CARRY4((uint)pRowid,(uint)iVal - 2)" identifier (argument_list "((uint)pRowid,(uint)iVal - 2)" ( (cast_expression "(uint)pRowid" ( (type_descriptor "uint" type_identifier) ) identifier) , (binary_expression "(uint)iVal - 2" (cast_expression "(uint)iVal" ( (type_descriptor "uint" type_identifier) ) identifier) - number_literal) )))) ;) (expression_statement "pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a));" (assignment_expression "pRowid = (sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a))" identifier = (cast_expression "(sqlite_int64 *)\n                                   ((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a))" ( (type_descriptor "sqlite_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a))" ( (binary_expression "(int)((sqlite3 *)pRowid)->aLimit + ((uint)iVal - 0x6a)" (cast_expression "(int)((sqlite3 *)pRowid)->aLimit" ( (type_descriptor "int" primitive_type) ) (field_expression "((sqlite3 *)pRowid)->aLimit" (parenthesized_expression "((sqlite3 *)pRowid)" ( (cast_expression "(sqlite3 *)pRowid" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) + (parenthesized_expression "((uint)iVal - 0x6a)" ( (binary_expression "(uint)iVal - 0x6a" (cast_expression "(uint)iVal" ( (type_descriptor "uint" type_identifier) ) identifier) - number_literal) ))) )))) ;) (expression_statement "in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal));" (assignment_expression "in_stack_fffffec8 =\n                               (Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal))" identifier = (cast_expression "(Fts3MultiSegReader *)\n                               ((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal))" ( (type_descriptor "Fts3MultiSegReader *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal))" ( (binary_expression "(int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1 + (uint)(1 < (uint)iVal)" (binary_expression "(int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_ + -1" (binary_expression "(int)in_stack_fffffec8 +\n                               (uint)bVar30 + iVal._4_4_" (binary_expression "(int)in_stack_fffffec8 +\n                               (uint)bVar30" (cast_expression "(int)in_stack_fffffec8" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)bVar30" ( (type_descriptor "uint" type_identifier) ) identifier)) + (field_expression "iVal._4_4_" identifier . field_identifier)) + number_literal) + (call_expression "(uint)(1 < (uint)iVal)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < (uint)iVal)" ( (binary_expression "1 < (uint)iVal" number_literal < (cast_expression "(uint)iVal" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) )))) ;) (expression_statement "uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11;" (assignment_expression "uVar27 = (int)(sqlite3 *)iDocid * 9 + uVar11" identifier = (binary_expression "(int)(sqlite3 *)iDocid * 9 + uVar11" (binary_expression "(int)(sqlite3 *)iDocid * 9" (cast_expression "(int)(sqlite3 *)iDocid" ( (type_descriptor "int" primitive_type) ) (cast_expression "(sqlite3 *)iDocid" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) * number_literal) + identifier)) ;) (expression_statement "iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11);" (assignment_expression "iVar8 = iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11)" identifier = (binary_expression "iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f) +\n                                  (uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11)" (binary_expression "iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8) +\n                                  ((int)uVar11 >> 0x1f)" (binary_expression "iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d) +\n                                  (uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8)" (binary_expression "iDocid._4_4_ +\n                                  (iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d)" (field_expression "iDocid._4_4_" identifier . field_identifier) + (parenthesized_expression "(iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d)" ( (binary_expression "iDocid._4_4_ << 3 | (uint)(sqlite3 *)iDocid >> 0x1d" (binary_expression "iDocid._4_4_ << 3" (field_expression "iDocid._4_4_" identifier . field_identifier) << number_literal) | (binary_expression "(uint)(sqlite3 *)iDocid >> 0x1d" (cast_expression "(uint)(sqlite3 *)iDocid" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(sqlite3 *)iDocid" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal)) ))) + (cast_expression "(uint)CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8)" identifier (argument_list "((uint)(sqlite3 *)iDocid,(int)(sqlite3 *)iDocid * 8)" ( (cast_expression "(uint)(sqlite3 *)iDocid" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(sqlite3 *)iDocid" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "(int)(sqlite3 *)iDocid * 8" (cast_expression "(int)(sqlite3 *)iDocid" ( (type_descriptor "int" primitive_type) ) (cast_expression "(sqlite3 *)iDocid" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) * number_literal) ))))) + (parenthesized_expression "((int)uVar11 >> 0x1f)" ( (binary_expression "(int)uVar11 >> 0x1f" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4((int)(sqlite3 *)iDocid * 9,uVar11)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((int)(sqlite3 *)iDocid * 9,uVar11)" identifier (argument_list "((int)(sqlite3 *)iDocid * 9,uVar11)" ( (binary_expression "(int)(sqlite3 *)iDocid * 9" (cast_expression "(int)(sqlite3 *)iDocid" ( (type_descriptor "int" primitive_type) ) (cast_expression "(sqlite3 *)iDocid" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) * number_literal) , identifier )))))) ;) (expression_statement "uVar14 = uVar27 * 9 + (int)local_114;" (assignment_expression "uVar14 = uVar27 * 9 + (int)local_114" identifier = (binary_expression "uVar27 * 9 + (int)local_114" (binary_expression "uVar27 * 9" identifier * number_literal) + (cast_expression "(int)local_114" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114);" (assignment_expression "iVar8 = (iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114)" identifier = (binary_expression "(iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110 +\n                                  (uint)CARRY4(uVar27 * 9,(uint)local_114)" (binary_expression "(iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27) + local_110" (binary_expression "(iVar8 * 8 | uVar27 >> 0x1d) + iVar8 +\n                                  (uint)CARRY4(uVar27 * 8,uVar27)" (binary_expression "(iVar8 * 8 | uVar27 >> 0x1d) + iVar8" (parenthesized_expression "(iVar8 * 8 | uVar27 >> 0x1d)" ( (binary_expression "iVar8 * 8 | uVar27 >> 0x1d" (binary_expression "iVar8 * 8" identifier * number_literal) | (binary_expression "uVar27 >> 0x1d" identifier >> number_literal)) )) + identifier) + (cast_expression "(uint)CARRY4(uVar27 * 8,uVar27)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar27 * 8,uVar27)" identifier (argument_list "(uVar27 * 8,uVar27)" ( (binary_expression "uVar27 * 8" identifier * number_literal) , identifier ))))) + identifier) + (cast_expression "(uint)CARRY4(uVar27 * 9,(uint)local_114)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar27 * 9,(uint)local_114)" identifier (argument_list "(uVar27 * 9,(uint)local_114)" ( (binary_expression "uVar27 * 9" identifier * number_literal) , (cast_expression "(uint)local_114" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (expression_statement "uVar27 = uVar14 * 8 + uVar14 + (uint)iCol;" (assignment_expression "uVar27 = uVar14 * 8 + uVar14 + (uint)iCol" identifier = (binary_expression "uVar14 * 8 + uVar14 + (uint)iCol" (binary_expression "uVar14 * 8 + uVar14" (binary_expression "uVar14 * 8" identifier * number_literal) + identifier) + (cast_expression "(uint)iCol" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol);" (assignment_expression "iVar8 = (iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol)" identifier = (binary_expression "(iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol) +\n                                  (uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol)" (binary_expression "(iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f) +\n                                  (uint)CARRY4(uVar14,(uint)iCol)" (binary_expression "(iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8 + ((int)(uint)iCol >> 0x1f)" (binary_expression "(iVar8 * 8 | uVar14 >> 0x1d) +\n                                  iVar8" (parenthesized_expression "(iVar8 * 8 | uVar14 >> 0x1d)" ( (binary_expression "iVar8 * 8 | uVar14 >> 0x1d" (binary_expression "iVar8 * 8" identifier * number_literal) | (binary_expression "uVar14 >> 0x1d" identifier >> number_literal)) )) + identifier) + (parenthesized_expression "((int)(uint)iCol >> 0x1f)" ( (binary_expression "(int)(uint)iCol >> 0x1f" (cast_expression "(int)(uint)iCol" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)iCol" ( (type_descriptor "uint" type_identifier) ) identifier)) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar14,(uint)iCol)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar14,(uint)iCol)" identifier (argument_list "(uVar14,(uint)iCol)" ( identifier , (cast_expression "(uint)iCol" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) + (cast_expression "(uint)CARRY4(uVar14 * 8,uVar14 + (uint)iCol)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar14 * 8,uVar14 + (uint)iCol)" identifier (argument_list "(uVar14 * 8,uVar14 + (uint)iCol)" ( (binary_expression "uVar14 * 8" identifier * number_literal) , (binary_expression "uVar14 + (uint)iCol" identifier + (cast_expression "(uint)iCol" ( (type_descriptor "uint" type_identifier) ) identifier)) )))))) ;) (expression_statement "uVar14 = (int)pRowid + uVar27 * 9;" (assignment_expression "uVar14 = (int)pRowid + uVar27 * 9" identifier = (binary_expression "(int)pRowid + uVar27 * 9" (cast_expression "(int)pRowid" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar27 * 9" identifier * number_literal))) ;) (expression_statement "uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9);" (assignment_expression "uVar27 = ((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9)" identifier = (binary_expression "((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8) +\n                                   (uint)CARRY4((uint)pRowid,uVar27 * 9)" (binary_expression "((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d) +\n                                   (uint)CARRY4(uVar27,uVar27 * 8)" (binary_expression "((int)pRowid >> 0x1f) +\n                                   iVar8 + (iVar8 * 8 | uVar27 >> 0x1d)" (binary_expression "((int)pRowid >> 0x1f) +\n                                   iVar8" (parenthesized_expression "((int)pRowid >> 0x1f)" ( (binary_expression "(int)pRowid >> 0x1f" (cast_expression "(int)pRowid" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + identifier) + (parenthesized_expression "(iVar8 * 8 | uVar27 >> 0x1d)" ( (binary_expression "iVar8 * 8 | uVar27 >> 0x1d" (binary_expression "iVar8 * 8" identifier * number_literal) | (binary_expression "uVar27 >> 0x1d" identifier >> number_literal)) ))) + (cast_expression "(uint)CARRY4(uVar27,uVar27 * 8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar27,uVar27 * 8)" identifier (argument_list "(uVar27,uVar27 * 8)" ( identifier , (binary_expression "uVar27 * 8" identifier * number_literal) ))))) + (cast_expression "(uint)CARRY4((uint)pRowid,uVar27 * 9)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)pRowid,uVar27 * 9)" identifier (argument_list "((uint)pRowid,uVar27 * 9)" ( (cast_expression "(uint)pRowid" ( (type_descriptor "uint" type_identifier) ) identifier) , (binary_expression "uVar27 * 9" identifier * number_literal) )))))) ;) (if_statement "if (0 < (int)local_2c) {\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }" if (parenthesized_expression "(0 < (int)local_2c)" ( (binary_expression "0 < (int)local_2c" number_literal < (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                            ppVVar28 = local_30;\n                            do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);\n                          }" { (expression_statement "ppVVar28 = local_30;" (assignment_expression "ppVVar28 = local_30" identifier = identifier) ;) (do_statement "do {\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            } while ((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28);" do (compound_statement "{\n                              uVar22 = (uint)*(char *)ppVVar28;\n                              uVar16 = uVar14 * 8;\n                              uVar15 = uVar14 >> 0x1d;\n                              uVar17 = uVar16 + uVar22;\n                              bVar30 = CARRY4(uVar14,uVar17);\n                              uVar14 = uVar14 + uVar17;\n                              uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                              ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);\n                            }" { (expression_statement "uVar22 = (uint)*(char *)ppVVar28;" (assignment_expression "uVar22 = (uint)*(char *)ppVVar28" identifier = (binary_expression "(uint)*(char *)ppVVar28" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)ppVVar28" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar16 = uVar14 * 8;" (assignment_expression "uVar16 = uVar14 * 8" identifier = (binary_expression "uVar14 * 8" identifier * number_literal)) ;) (expression_statement "uVar15 = uVar14 >> 0x1d;" (assignment_expression "uVar15 = uVar14 >> 0x1d" identifier = (binary_expression "uVar14 >> 0x1d" identifier >> number_literal)) ;) (expression_statement "uVar17 = uVar16 + uVar22;" (assignment_expression "uVar17 = uVar16 + uVar22" identifier = (binary_expression "uVar16 + uVar22" identifier + identifier)) ;) (expression_statement "bVar30 = CARRY4(uVar14,uVar17);" (assignment_expression "bVar30 = CARRY4(uVar14,uVar17)" identifier = (call_expression "CARRY4(uVar14,uVar17)" identifier (argument_list "(uVar14,uVar17)" ( identifier , identifier )))) ;) (expression_statement "uVar14 = uVar14 + uVar17;" (assignment_expression "uVar14 = uVar14 + uVar17" identifier = (binary_expression "uVar14 + uVar17" identifier + identifier)) ;) (expression_statement "uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;" (assignment_expression "uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30" identifier = (binary_expression "uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22) + (uint)bVar30" (binary_expression "uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                                (uint)CARRY4(uVar16,uVar22)" (binary_expression "uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f)" (binary_expression "uVar27 + (uVar27 << 3 | uVar15)" identifier + (parenthesized_expression "(uVar27 << 3 | uVar15)" ( (binary_expression "uVar27 << 3 | uVar15" (binary_expression "uVar27 << 3" identifier << number_literal) | identifier) ))) + (parenthesized_expression "((int)uVar22 >> 0x1f)" ( (binary_expression "(int)uVar22 >> 0x1f" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar16,uVar22)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar16,uVar22)" identifier (argument_list "(uVar16,uVar22)" ( identifier , identifier ))))) + (cast_expression "(uint)bVar30" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1);" (assignment_expression "ppVVar28 = (VdbeCursor **)((int)ppVVar28 + 1)" identifier = (cast_expression "(VdbeCursor **)((int)ppVVar28 + 1)" ( (type_descriptor "VdbeCursor **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppVVar28 + 1)" ( (binary_expression "(int)ppVVar28 + 1" (cast_expression "(int)ppVVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28)" ( (binary_expression "(VdbeCursor **)((int)local_30 + (int)local_2c) != ppVVar28" (cast_expression "(VdbeCursor **)((int)local_30 + (int)local_2c)" ( (type_descriptor "VdbeCursor **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_30 + (int)local_2c)" ( (binary_expression "(int)local_30 + (int)local_2c" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) != identifier) )) ;) })) (expression_statement "local_104 = local_104 ^ uVar14;" (assignment_expression "local_104 = local_104 ^ uVar14" identifier = (binary_expression "local_104 ^ uVar14" identifier ^ identifier)) ;) (expression_statement "local_100 = local_100 ^ uVar27;" (assignment_expression "local_100 = local_100 ^ uVar27" identifier = (binary_expression "local_100 ^ uVar27" identifier ^ identifier)) ;) }))) })) })) (goto_statement "goto LAB_0013c8a0;" goto statement_identifier ;) })) (expression_statement "local_d0 = local_d0 ^ local_104;" (assignment_expression "local_d0 = local_d0 ^ local_104" identifier = (binary_expression "local_d0 ^ local_104" identifier ^ identifier)) ;) (expression_statement "local_b4 = local_b4 ^ local_100;" (assignment_expression "local_b4 = local_b4 ^ local_100" identifier = (binary_expression "local_b4 ^ local_100" identifier ^ identifier)) ;) })) (expression_statement "psVar19 = pStmt;" (assignment_expression "psVar19 = pStmt" identifier = identifier) ;) (if_statement "if (0 < (int)local_54) {\n                  iVar20 = 0;\n                  pVVar12 = local_54;\n                  do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);\n                }" if (parenthesized_expression "(0 < (int)local_54)" ( (binary_expression "0 < (int)local_54" number_literal < (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  iVar20 = 0;\n                  pVVar12 = local_54;\n                  do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);\n                }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "pVVar12 = local_54;" (assignment_expression "pVVar12 = local_54" identifier = identifier) ;) (do_statement "do {\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  } while (iVar20 < (int)local_54);" do (compound_statement "{\n                    while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }\n                    p = *(void **)((int)pvVar3 + 0x34);\n                    if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }\n                    if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar20 = iVar20 + 1;\n                    (*sqlite3Config.m.xFree)(pvVar3);\n                    pVVar12 = local_54;\n                    psVar19 = pStmt;\n                  }" { (while_statement "while (pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0) {\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }" while (parenthesized_expression "(pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0)" ( (comma_expression "pvVar3 = *(void **)(psVar19 + iVar20 * 4), pvVar3 == (void *)0x0" (assignment_expression "pvVar3 = *(void **)(psVar19 + iVar20 * 4)" identifier = (pointer_expression "*(void **)(psVar19 + iVar20 * 4)" * (cast_expression "(void **)(psVar19 + iVar20 * 4)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(psVar19 + iVar20 * 4)" ( (binary_expression "psVar19 + iVar20 * 4" identifier + (binary_expression "iVar20 * 4" identifier * number_literal)) ))))) , (binary_expression "pvVar3 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\nLAB_0013c4bb:\n                      iVar20 = iVar20 + 1;\n                      if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;\n                    }" { (labeled_statement "LAB_0013c4bb:\n                      iVar20 = iVar20 + 1;" statement_identifier : (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;)) (if_statement "if ((int)pVVar12 <= iVar20) goto LAB_0013c5e2;" if (parenthesized_expression "((int)pVVar12 <= iVar20)" ( (binary_expression "(int)pVVar12 <= iVar20" (cast_expression "(int)pVVar12" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (goto_statement "goto LAB_0013c5e2;" goto statement_identifier ;)) })) (if_statement "if ((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }" if (parenthesized_expression "((*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0))" ( (binary_expression "(*(int *)((int)pvVar3 + 0x38) == 0) &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)" (parenthesized_expression "(*(int *)((int)pvVar3 + 0x38) == 0)" ( (binary_expression "*(int *)((int)pvVar3 + 0x38) == 0" (pointer_expression "*(int *)((int)pvVar3 + 0x38)" * (cast_expression "(int *)((int)pvVar3 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar3 + 0x38)" ( (binary_expression "(int)pvVar3 + 0x38" (cast_expression "(int)pvVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0)" ( (comma_expression "psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40), psVar23 != (sqlite3 *)0x0" (assignment_expression "psVar23 = *(sqlite3 **)((int)pvVar3 + 0x40)" identifier = (pointer_expression "*(sqlite3 **)((int)pvVar3 + 0x40)" * (cast_expression "(sqlite3 **)((int)pvVar3 + 0x40)" ( (type_descriptor "sqlite3 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pvVar3 + 0x40)" ( (binary_expression "(int)pvVar3 + 0x40" (cast_expression "(int)pvVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) , (binary_expression "psVar23 != (sqlite3 *)0x0" identifier != (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }" { (if_statement "if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }" if (parenthesized_expression "(sqlite3Config.bMemstat == 0)" ( (binary_expression "sqlite3Config.bMemstat == 0" (field_expression "sqlite3Config.bMemstat" identifier . field_identifier) == number_literal) )) (compound_statement "{\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }" { (expression_statement "(*sqlite3Config.m.xFree)(psVar23);" (call_expression "(*sqlite3Config.m.xFree)(psVar23)" (parenthesized_expression "(*sqlite3Config.m.xFree)" ( (pointer_expression "*sqlite3Config.m.xFree" * (field_expression "sqlite3Config.m.xFree" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(psVar23)" ( identifier ))) ;) }) (else_clause "else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }" else (compound_statement "{\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }" { (if_statement "if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }" if (parenthesized_expression "(mem0.mutex != (sqlite3_mutex *)0x0)" ( (binary_expression "mem0.mutex != (sqlite3_mutex *)0x0" (field_expression "mem0.mutex" identifier . field_identifier) != (cast_expression "(sqlite3_mutex *)0x0" ( (type_descriptor "sqlite3_mutex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }" { (expression_statement "(*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);" (call_expression "(*sqlite3Config.mutex.xMutexEnter)(mem0.mutex)" (parenthesized_expression "(*sqlite3Config.mutex.xMutexEnter)" ( (pointer_expression "*sqlite3Config.mutex.xMutexEnter" * (field_expression "sqlite3Config.mutex.xMutexEnter" (field_expression "sqlite3Config.mutex" identifier . field_identifier) . field_identifier)) )) (argument_list "(mem0.mutex)" ( (field_expression "mem0.mutex" identifier . field_identifier) ))) ;) })) (expression_statement "iVar13 = (*sqlite3Config.m.xSize)(psVar23);" (assignment_expression "iVar13 = (*sqlite3Config.m.xSize)(psVar23)" identifier = (call_expression "(*sqlite3Config.m.xSize)(psVar23)" (parenthesized_expression "(*sqlite3Config.m.xSize)" ( (pointer_expression "*sqlite3Config.m.xSize" * (field_expression "sqlite3Config.m.xSize" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(psVar23)" ( identifier )))) ;) (expression_statement "sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;" (assignment_expression "sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13" (subscript_expression "sqlite3Stat.nowValue[0]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) = (binary_expression "sqlite3Stat.nowValue[0] - iVar13" (subscript_expression "sqlite3Stat.nowValue[0]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) - identifier)) ;) (expression_statement "sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;" (assignment_expression "sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1" (subscript_expression "sqlite3Stat.nowValue[9]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) = (binary_expression "sqlite3Stat.nowValue[9] - 1" (subscript_expression "sqlite3Stat.nowValue[9]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) - number_literal)) ;) (expression_statement "(*sqlite3Config.m.xFree)(psVar23);" (call_expression "(*sqlite3Config.m.xFree)(psVar23)" (parenthesized_expression "(*sqlite3Config.m.xFree)" ( (pointer_expression "*sqlite3Config.m.xFree" * (field_expression "sqlite3Config.m.xFree" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(psVar23)" ( identifier ))) ;) (expression_statement "pRowid = (sqlite_int64 *)psVar23;" (assignment_expression "pRowid = (sqlite_int64 *)psVar23" identifier = (cast_expression "(sqlite_int64 *)psVar23" ( (type_descriptor "sqlite_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }" if (parenthesized_expression "(mem0.mutex != (sqlite3_mutex *)0x0)" ( (binary_expression "mem0.mutex != (sqlite3_mutex *)0x0" (field_expression "mem0.mutex" identifier . field_identifier) != (cast_expression "(sqlite3_mutex *)0x0" ( (type_descriptor "sqlite3_mutex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }" { (expression_statement "(*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);" (call_expression "(*sqlite3Config.mutex.xMutexLeave)(mem0.mutex)" (parenthesized_expression "(*sqlite3Config.mutex.xMutexLeave)" ( (pointer_expression "*sqlite3Config.mutex.xMutexLeave" * (field_expression "sqlite3Config.mutex.xMutexLeave" (field_expression "sqlite3Config.mutex" identifier . field_identifier) . field_identifier)) )) (argument_list "(mem0.mutex)" ( (field_expression "mem0.mutex" identifier . field_identifier) ))) ;) (expression_statement "pRowid = (sqlite_int64 *)psVar23;" (assignment_expression "pRowid = (sqlite_int64 *)psVar23" identifier = (cast_expression "(sqlite_int64 *)psVar23" ( (type_descriptor "sqlite_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) }))) })) (if_statement "if ((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)) {\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }" if (parenthesized_expression "((*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0))" ( (binary_expression "(*(char *)((int)pvVar3 + 5) == '\0') &&\n                       (psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)" (parenthesized_expression "(*(char *)((int)pvVar3 + 5) == '\0')" ( (binary_expression "*(char *)((int)pvVar3 + 5) == '\0'" (pointer_expression "*(char *)((int)pvVar3 + 5)" * (cast_expression "(char *)((int)pvVar3 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar3 + 5)" ( (binary_expression "(int)pvVar3 + 5" (cast_expression "(int)pvVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0)" ( (comma_expression "psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28), psVar23 != (sqlite3 *)0x0" (assignment_expression "psVar23 = *(sqlite3 **)((int)pvVar3 + 0x28)" identifier = (pointer_expression "*(sqlite3 **)((int)pvVar3 + 0x28)" * (cast_expression "(sqlite3 **)((int)pvVar3 + 0x28)" ( (type_descriptor "sqlite3 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pvVar3 + 0x28)" ( (binary_expression "(int)pvVar3 + 0x28" (cast_expression "(int)pvVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) , (binary_expression "psVar23 != (sqlite3 *)0x0" identifier != (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                      if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }\n                    }" { (if_statement "if (sqlite3Config.bMemstat == 0) {\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }\n                      else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }" if (parenthesized_expression "(sqlite3Config.bMemstat == 0)" ( (binary_expression "sqlite3Config.bMemstat == 0" (field_expression "sqlite3Config.bMemstat" identifier . field_identifier) == number_literal) )) (compound_statement "{\n                        (*sqlite3Config.m.xFree)(psVar23);\n                      }" { (expression_statement "(*sqlite3Config.m.xFree)(psVar23);" (call_expression "(*sqlite3Config.m.xFree)(psVar23)" (parenthesized_expression "(*sqlite3Config.m.xFree)" ( (pointer_expression "*sqlite3Config.m.xFree" * (field_expression "sqlite3Config.m.xFree" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(psVar23)" ( identifier ))) ;) }) (else_clause "else {\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }" else (compound_statement "{\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }\n                        iVar13 = (*sqlite3Config.m.xSize)(psVar23);\n                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                        (*sqlite3Config.m.xFree)(psVar23);\n                        pRowid = (sqlite_int64 *)psVar23;\n                        if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }\n                      }" { (if_statement "if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }" if (parenthesized_expression "(mem0.mutex != (sqlite3_mutex *)0x0)" ( (binary_expression "mem0.mutex != (sqlite3_mutex *)0x0" (field_expression "mem0.mutex" identifier . field_identifier) != (cast_expression "(sqlite3_mutex *)0x0" ( (type_descriptor "sqlite3_mutex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                        }" { (expression_statement "(*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);" (call_expression "(*sqlite3Config.mutex.xMutexEnter)(mem0.mutex)" (parenthesized_expression "(*sqlite3Config.mutex.xMutexEnter)" ( (pointer_expression "*sqlite3Config.mutex.xMutexEnter" * (field_expression "sqlite3Config.mutex.xMutexEnter" (field_expression "sqlite3Config.mutex" identifier . field_identifier) . field_identifier)) )) (argument_list "(mem0.mutex)" ( (field_expression "mem0.mutex" identifier . field_identifier) ))) ;) })) (expression_statement "iVar13 = (*sqlite3Config.m.xSize)(psVar23);" (assignment_expression "iVar13 = (*sqlite3Config.m.xSize)(psVar23)" identifier = (call_expression "(*sqlite3Config.m.xSize)(psVar23)" (parenthesized_expression "(*sqlite3Config.m.xSize)" ( (pointer_expression "*sqlite3Config.m.xSize" * (field_expression "sqlite3Config.m.xSize" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(psVar23)" ( identifier )))) ;) (expression_statement "sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;" (assignment_expression "sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13" (subscript_expression "sqlite3Stat.nowValue[0]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) = (binary_expression "sqlite3Stat.nowValue[0] - iVar13" (subscript_expression "sqlite3Stat.nowValue[0]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) - identifier)) ;) (expression_statement "sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;" (assignment_expression "sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1" (subscript_expression "sqlite3Stat.nowValue[9]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) = (binary_expression "sqlite3Stat.nowValue[9] - 1" (subscript_expression "sqlite3Stat.nowValue[9]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) - number_literal)) ;) (expression_statement "(*sqlite3Config.m.xFree)(psVar23);" (call_expression "(*sqlite3Config.m.xFree)(psVar23)" (parenthesized_expression "(*sqlite3Config.m.xFree)" ( (pointer_expression "*sqlite3Config.m.xFree" * (field_expression "sqlite3Config.m.xFree" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(psVar23)" ( identifier ))) ;) (expression_statement "pRowid = (sqlite_int64 *)psVar23;" (assignment_expression "pRowid = (sqlite_int64 *)psVar23" identifier = (cast_expression "(sqlite_int64 *)psVar23" ( (type_descriptor "sqlite_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }" if (parenthesized_expression "(mem0.mutex != (sqlite3_mutex *)0x0)" ( (binary_expression "mem0.mutex != (sqlite3_mutex *)0x0" (field_expression "mem0.mutex" identifier . field_identifier) != (cast_expression "(sqlite3_mutex *)0x0" ( (type_descriptor "sqlite3_mutex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          pRowid = (sqlite_int64 *)psVar23;\n                        }" { (expression_statement "(*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);" (call_expression "(*sqlite3Config.mutex.xMutexLeave)(mem0.mutex)" (parenthesized_expression "(*sqlite3Config.mutex.xMutexLeave)" ( (pointer_expression "*sqlite3Config.mutex.xMutexLeave" * (field_expression "sqlite3Config.mutex.xMutexLeave" (field_expression "sqlite3Config.mutex" identifier . field_identifier) . field_identifier)) )) (argument_list "(mem0.mutex)" ( (field_expression "mem0.mutex" identifier . field_identifier) ))) ;) (expression_statement "pRowid = (sqlite_int64 *)psVar23;" (assignment_expression "pRowid = (sqlite_int64 *)psVar23" identifier = (cast_expression "(sqlite_int64 *)psVar23" ( (type_descriptor "sqlite_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) }))) })) (expression_statement "p = *(void **)((int)pvVar3 + 0x34);" (assignment_expression "p = *(void **)((int)pvVar3 + 0x34)" identifier = (pointer_expression "*(void **)((int)pvVar3 + 0x34)" * (cast_expression "(void **)((int)pvVar3 + 0x34)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pvVar3 + 0x34)" ( (binary_expression "(int)pvVar3 + 0x34" (cast_expression "(int)pvVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (p != (void *)0x0) {\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }" if (parenthesized_expression "(p != (void *)0x0)" ( (binary_expression "p != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      pRowid = *(sqlite_int64 **)((int)p + 0x14);\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }\n                      sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));\n                      if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }\n                      if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }\n                    }" { (expression_statement "pRowid = *(sqlite_int64 **)((int)p + 0x14);" (assignment_expression "pRowid = *(sqlite_int64 **)((int)p + 0x14)" identifier = (pointer_expression "*(sqlite_int64 **)((int)p + 0x14)" * (cast_expression "(sqlite_int64 **)((int)p + 0x14)" ( (type_descriptor "sqlite_int64 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)p + 0x14)" ( (binary_expression "(int)p + 0x14" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }" if (parenthesized_expression "(((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0)" ( (binary_expression "((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0" (field_expression "((sqlite3 *)pRowid)->mutex" (parenthesized_expression "((sqlite3 *)pRowid)" ( (cast_expression "(sqlite3 *)pRowid" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) != (cast_expression "(sqlite3_mutex *)0x0" ( (type_descriptor "sqlite3_mutex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        (*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);\n                      }" { (expression_statement "(*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex);" (call_expression "(*sqlite3Config.mutex.xMutexEnter)(((sqlite3 *)pRowid)->mutex)" (parenthesized_expression "(*sqlite3Config.mutex.xMutexEnter)" ( (pointer_expression "*sqlite3Config.mutex.xMutexEnter" * (field_expression "sqlite3Config.mutex.xMutexEnter" (field_expression "sqlite3Config.mutex" identifier . field_identifier) . field_identifier)) )) (argument_list "(((sqlite3 *)pRowid)->mutex)" ( (field_expression "((sqlite3 *)pRowid)->mutex" (parenthesized_expression "((sqlite3 *)pRowid)" ( (cast_expression "(sqlite3 *)pRowid" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) ))) ;) })) (expression_statement "sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10));" (call_expression "sqlite3_finalize(*(sqlite3_stmt **)((int)p + 0x10))" identifier (argument_list "(*(sqlite3_stmt **)((int)p + 0x10))" ( (pointer_expression "*(sqlite3_stmt **)((int)p + 0x10)" * (cast_expression "(sqlite3_stmt **)((int)p + 0x10)" ( (type_descriptor "sqlite3_stmt **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)p + 0x10)" ( (binary_expression "(int)p + 0x10" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (if_statement "if (((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0) {\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }\n                      else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }" if (parenthesized_expression "(((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0)" ( (binary_expression "((sqlite3 *)pRowid)->pnBytesFreed == (int *)0x0" (field_expression "((sqlite3 *)pRowid)->pnBytesFreed" (parenthesized_expression "((sqlite3 *)pRowid)" ( (cast_expression "(sqlite3 *)pRowid" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }\n                      }" { (if_statement "if (sqlite3Config.bMemstat == 0) {\n                          (*sqlite3Config.m.xFree)(p);\n                        }\n                        else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }" if (parenthesized_expression "(sqlite3Config.bMemstat == 0)" ( (binary_expression "sqlite3Config.bMemstat == 0" (field_expression "sqlite3Config.bMemstat" identifier . field_identifier) == number_literal) )) (compound_statement "{\n                          (*sqlite3Config.m.xFree)(p);\n                        }" { (expression_statement "(*sqlite3Config.m.xFree)(p);" (call_expression "(*sqlite3Config.m.xFree)(p)" (parenthesized_expression "(*sqlite3Config.m.xFree)" ( (pointer_expression "*sqlite3Config.m.xFree" * (field_expression "sqlite3Config.m.xFree" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(p)" ( identifier ))) ;) }) (else_clause "else {\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }" else (compound_statement "{\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }\n                          iVar13 = (*sqlite3Config.m.xSize)(p);\n                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                          (*sqlite3Config.m.xFree)(p);\n                          if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }\n                        }" { (if_statement "if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }" if (parenthesized_expression "(mem0.mutex != (sqlite3_mutex *)0x0)" ( (binary_expression "mem0.mutex != (sqlite3_mutex *)0x0" (field_expression "mem0.mutex" identifier . field_identifier) != (cast_expression "(sqlite3_mutex *)0x0" ( (type_descriptor "sqlite3_mutex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                          }" { (expression_statement "(*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);" (call_expression "(*sqlite3Config.mutex.xMutexEnter)(mem0.mutex)" (parenthesized_expression "(*sqlite3Config.mutex.xMutexEnter)" ( (pointer_expression "*sqlite3Config.mutex.xMutexEnter" * (field_expression "sqlite3Config.mutex.xMutexEnter" (field_expression "sqlite3Config.mutex" identifier . field_identifier) . field_identifier)) )) (argument_list "(mem0.mutex)" ( (field_expression "mem0.mutex" identifier . field_identifier) ))) ;) })) (expression_statement "iVar13 = (*sqlite3Config.m.xSize)(p);" (assignment_expression "iVar13 = (*sqlite3Config.m.xSize)(p)" identifier = (call_expression "(*sqlite3Config.m.xSize)(p)" (parenthesized_expression "(*sqlite3Config.m.xSize)" ( (pointer_expression "*sqlite3Config.m.xSize" * (field_expression "sqlite3Config.m.xSize" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(p)" ( identifier )))) ;) (expression_statement "sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;" (assignment_expression "sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13" (subscript_expression "sqlite3Stat.nowValue[0]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) = (binary_expression "sqlite3Stat.nowValue[0] - iVar13" (subscript_expression "sqlite3Stat.nowValue[0]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) - identifier)) ;) (expression_statement "sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;" (assignment_expression "sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1" (subscript_expression "sqlite3Stat.nowValue[9]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) = (binary_expression "sqlite3Stat.nowValue[9] - 1" (subscript_expression "sqlite3Stat.nowValue[9]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) - number_literal)) ;) (expression_statement "(*sqlite3Config.m.xFree)(p);" (call_expression "(*sqlite3Config.m.xFree)(p)" (parenthesized_expression "(*sqlite3Config.m.xFree)" ( (pointer_expression "*sqlite3Config.m.xFree" * (field_expression "sqlite3Config.m.xFree" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(p)" ( identifier ))) ;) (if_statement "if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }" if (parenthesized_expression "(mem0.mutex != (sqlite3_mutex *)0x0)" ( (binary_expression "mem0.mutex != (sqlite3_mutex *)0x0" (field_expression "mem0.mutex" identifier . field_identifier) != (cast_expression "(sqlite3_mutex *)0x0" ( (type_descriptor "sqlite3_mutex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                          }" { (expression_statement "(*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);" (call_expression "(*sqlite3Config.mutex.xMutexLeave)(mem0.mutex)" (parenthesized_expression "(*sqlite3Config.mutex.xMutexLeave)" ( (pointer_expression "*sqlite3Config.mutex.xMutexLeave" * (field_expression "sqlite3Config.mutex.xMutexLeave" (field_expression "sqlite3Config.mutex" identifier . field_identifier) . field_identifier)) )) (argument_list "(mem0.mutex)" ( (field_expression "mem0.mutex" identifier . field_identifier) ))) ;) })) }))) }) (else_clause "else {\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }" else (compound_statement "{\n                        iVar8 = 0x13c785;\n                        measureAllocationSize((sqlite3 *)pRowid,p);\n                      }" { (expression_statement "iVar8 = 0x13c785;" (assignment_expression "iVar8 = 0x13c785" identifier = number_literal) ;) (expression_statement "measureAllocationSize((sqlite3 *)pRowid,p);" (call_expression "measureAllocationSize((sqlite3 *)pRowid,p)" identifier (argument_list "((sqlite3 *)pRowid,p)" ( (cast_expression "(sqlite3 *)pRowid" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) }))) (if_statement "if (((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }" if (parenthesized_expression "(((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0)" ( (binary_expression "((sqlite3 *)pRowid)->mutex != (sqlite3_mutex *)0x0" (field_expression "((sqlite3 *)pRowid)->mutex" (parenthesized_expression "((sqlite3 *)pRowid)" ( (cast_expression "(sqlite3 *)pRowid" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) != (cast_expression "(sqlite3_mutex *)0x0" ( (type_descriptor "sqlite3_mutex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        (*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);\n                      }" { (expression_statement "(*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex);" (call_expression "(*sqlite3Config.mutex.xMutexLeave)(((sqlite3 *)pRowid)->mutex)" (parenthesized_expression "(*sqlite3Config.mutex.xMutexLeave)" ( (pointer_expression "*sqlite3Config.mutex.xMutexLeave" * (field_expression "sqlite3Config.mutex.xMutexLeave" (field_expression "sqlite3Config.mutex" identifier . field_identifier) . field_identifier)) )) (argument_list "(((sqlite3 *)pRowid)->mutex)" ( (field_expression "((sqlite3 *)pRowid)->mutex" (parenthesized_expression "((sqlite3 *)pRowid)" ( (cast_expression "(sqlite3 *)pRowid" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) ))) ;) })) })) (if_statement "if (sqlite3Config.bMemstat != 0) {\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }" if (parenthesized_expression "(sqlite3Config.bMemstat != 0)" ( (binary_expression "sqlite3Config.bMemstat != 0" (field_expression "sqlite3Config.bMemstat" identifier . field_identifier) != number_literal) )) (compound_statement "{\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }\n                      iVar13 = (*sqlite3Config.m.xSize)(pvVar3);\n                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;\n                      (*sqlite3Config.m.xFree)(pvVar3);\n                      pVVar12 = local_54;\n                      psVar19 = pStmt;\n                      if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }\n                      goto LAB_0013c4bb;\n                    }" { (if_statement "if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }" if (parenthesized_expression "(mem0.mutex != (sqlite3_mutex *)0x0)" ( (binary_expression "mem0.mutex != (sqlite3_mutex *)0x0" (field_expression "mem0.mutex" identifier . field_identifier) != (cast_expression "(sqlite3_mutex *)0x0" ( (type_descriptor "sqlite3_mutex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                      }" { (expression_statement "(*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);" (call_expression "(*sqlite3Config.mutex.xMutexEnter)(mem0.mutex)" (parenthesized_expression "(*sqlite3Config.mutex.xMutexEnter)" ( (pointer_expression "*sqlite3Config.mutex.xMutexEnter" * (field_expression "sqlite3Config.mutex.xMutexEnter" (field_expression "sqlite3Config.mutex" identifier . field_identifier) . field_identifier)) )) (argument_list "(mem0.mutex)" ( (field_expression "mem0.mutex" identifier . field_identifier) ))) ;) })) (expression_statement "iVar13 = (*sqlite3Config.m.xSize)(pvVar3);" (assignment_expression "iVar13 = (*sqlite3Config.m.xSize)(pvVar3)" identifier = (call_expression "(*sqlite3Config.m.xSize)(pvVar3)" (parenthesized_expression "(*sqlite3Config.m.xSize)" ( (pointer_expression "*sqlite3Config.m.xSize" * (field_expression "sqlite3Config.m.xSize" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(pvVar3)" ( identifier )))) ;) (expression_statement "sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;" (assignment_expression "sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1" (subscript_expression "sqlite3Stat.nowValue[9]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) = (binary_expression "sqlite3Stat.nowValue[9] - 1" (subscript_expression "sqlite3Stat.nowValue[9]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) - number_literal)) ;) (expression_statement "sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13;" (assignment_expression "sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar13" (subscript_expression "sqlite3Stat.nowValue[0]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) = (binary_expression "sqlite3Stat.nowValue[0] - iVar13" (subscript_expression "sqlite3Stat.nowValue[0]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) - identifier)) ;) (expression_statement "(*sqlite3Config.m.xFree)(pvVar3);" (call_expression "(*sqlite3Config.m.xFree)(pvVar3)" (parenthesized_expression "(*sqlite3Config.m.xFree)" ( (pointer_expression "*sqlite3Config.m.xFree" * (field_expression "sqlite3Config.m.xFree" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(pvVar3)" ( identifier ))) ;) (expression_statement "pVVar12 = local_54;" (assignment_expression "pVVar12 = local_54" identifier = identifier) ;) (expression_statement "psVar19 = pStmt;" (assignment_expression "psVar19 = pStmt" identifier = identifier) ;) (if_statement "if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }" if (parenthesized_expression "(mem0.mutex != (sqlite3_mutex *)0x0)" ( (binary_expression "mem0.mutex != (sqlite3_mutex *)0x0" (field_expression "mem0.mutex" identifier . field_identifier) != (cast_expression "(sqlite3_mutex *)0x0" ( (type_descriptor "sqlite3_mutex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                        pVVar12 = local_54;\n                        psVar19 = pStmt;\n                      }" { (expression_statement "(*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);" (call_expression "(*sqlite3Config.mutex.xMutexLeave)(mem0.mutex)" (parenthesized_expression "(*sqlite3Config.mutex.xMutexLeave)" ( (pointer_expression "*sqlite3Config.mutex.xMutexLeave" * (field_expression "sqlite3Config.mutex.xMutexLeave" (field_expression "sqlite3Config.mutex" identifier . field_identifier) . field_identifier)) )) (argument_list "(mem0.mutex)" ( (field_expression "mem0.mutex" identifier . field_identifier) ))) ;) (expression_statement "pVVar12 = local_54;" (assignment_expression "pVVar12 = local_54" identifier = identifier) ;) (expression_statement "psVar19 = pStmt;" (assignment_expression "psVar19 = pStmt" identifier = identifier) ;) })) (goto_statement "goto LAB_0013c4bb;" goto statement_identifier ;) })) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (expression_statement "(*sqlite3Config.m.xFree)(pvVar3);" (call_expression "(*sqlite3Config.m.xFree)(pvVar3)" (parenthesized_expression "(*sqlite3Config.m.xFree)" ( (pointer_expression "*sqlite3Config.m.xFree" * (field_expression "sqlite3Config.m.xFree" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(pvVar3)" ( identifier ))) ;) (expression_statement "pVVar12 = local_54;" (assignment_expression "pVVar12 = local_54" identifier = identifier) ;) (expression_statement "psVar19 = pStmt;" (assignment_expression "psVar19 = pStmt" identifier = identifier) ;) }) while (parenthesized_expression "(iVar20 < (int)local_54)" ( (binary_expression "iVar20 < (int)local_54" identifier < (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (labeled_statement "LAB_0013c5e2:\n                if (psVar19 != (sqlite3_stmt *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }" statement_identifier : (if_statement "if (psVar19 != (sqlite3_stmt *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }" if (parenthesized_expression "(psVar19 != (sqlite3_stmt *)0x0)" ( (binary_expression "psVar19 != (sqlite3_stmt *)0x0" identifier != (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }" { (if_statement "if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }" if (parenthesized_expression "(sqlite3Config.bMemstat == 0)" ( (binary_expression "sqlite3Config.bMemstat == 0" (field_expression "sqlite3Config.bMemstat" identifier . field_identifier) == number_literal) )) (compound_statement "{\n                    (*sqlite3Config.m.xFree)(psVar19);\n                  }" { (expression_statement "(*sqlite3Config.m.xFree)(psVar19);" (call_expression "(*sqlite3Config.m.xFree)(psVar19)" (parenthesized_expression "(*sqlite3Config.m.xFree)" ( (pointer_expression "*sqlite3Config.m.xFree" * (field_expression "sqlite3Config.m.xFree" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(psVar19)" ( identifier ))) ;) }) (else_clause "else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }" else (compound_statement "{\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(psVar19);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(psVar19);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }" { (if_statement "if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }" if (parenthesized_expression "(mem0.mutex != (sqlite3_mutex *)0x0)" ( (binary_expression "mem0.mutex != (sqlite3_mutex *)0x0" (field_expression "mem0.mutex" identifier . field_identifier) != (cast_expression "(sqlite3_mutex *)0x0" ( (type_descriptor "sqlite3_mutex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }" { (expression_statement "(*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);" (call_expression "(*sqlite3Config.mutex.xMutexEnter)(mem0.mutex)" (parenthesized_expression "(*sqlite3Config.mutex.xMutexEnter)" ( (pointer_expression "*sqlite3Config.mutex.xMutexEnter" * (field_expression "sqlite3Config.mutex.xMutexEnter" (field_expression "sqlite3Config.mutex" identifier . field_identifier) . field_identifier)) )) (argument_list "(mem0.mutex)" ( (field_expression "mem0.mutex" identifier . field_identifier) ))) ;) })) (expression_statement "iVar20 = (*sqlite3Config.m.xSize)(psVar19);" (assignment_expression "iVar20 = (*sqlite3Config.m.xSize)(psVar19)" identifier = (call_expression "(*sqlite3Config.m.xSize)(psVar19)" (parenthesized_expression "(*sqlite3Config.m.xSize)" ( (pointer_expression "*sqlite3Config.m.xSize" * (field_expression "sqlite3Config.m.xSize" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(psVar19)" ( identifier )))) ;) (expression_statement "sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;" (assignment_expression "sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1" (subscript_expression "sqlite3Stat.nowValue[9]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) = (binary_expression "sqlite3Stat.nowValue[9] - 1" (subscript_expression "sqlite3Stat.nowValue[9]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) - number_literal)) ;) (expression_statement "sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;" (assignment_expression "sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20" (subscript_expression "sqlite3Stat.nowValue[0]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) = (binary_expression "sqlite3Stat.nowValue[0] - iVar20" (subscript_expression "sqlite3Stat.nowValue[0]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) - identifier)) ;) (expression_statement "(*sqlite3Config.m.xFree)(psVar19);" (call_expression "(*sqlite3Config.m.xFree)(psVar19)" (parenthesized_expression "(*sqlite3Config.m.xFree)" ( (pointer_expression "*sqlite3Config.m.xFree" * (field_expression "sqlite3Config.m.xFree" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(psVar19)" ( identifier ))) ;) (if_statement "if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }" if (parenthesized_expression "(mem0.mutex != (sqlite3_mutex *)0x0)" ( (binary_expression "mem0.mutex != (sqlite3_mutex *)0x0" (field_expression "mem0.mutex" identifier . field_identifier) != (cast_expression "(sqlite3_mutex *)0x0" ( (type_descriptor "sqlite3_mutex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }" { (expression_statement "(*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);" (call_expression "(*sqlite3Config.mutex.xMutexLeave)(mem0.mutex)" (parenthesized_expression "(*sqlite3Config.mutex.xMutexLeave)" ( (pointer_expression "*sqlite3Config.mutex.xMutexLeave" * (field_expression "sqlite3Config.mutex.xMutexLeave" (field_expression "sqlite3Config.mutex" identifier . field_identifier) . field_identifier)) )) (argument_list "(mem0.mutex)" ( (field_expression "mem0.mutex" identifier . field_identifier) ))) ;) })) }))) }))) (expression_statement "pcVar9 = local_48;" (assignment_expression "pcVar9 = local_48" identifier = identifier) ;) (if_statement "if (local_48 != (char *)0x0) {\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }" if (parenthesized_expression "(local_48 != (char *)0x0)" ( (binary_expression "local_48 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }\n                }" { (if_statement "if (sqlite3Config.bMemstat == 0) {\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }\n                  else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }" if (parenthesized_expression "(sqlite3Config.bMemstat == 0)" ( (binary_expression "sqlite3Config.bMemstat == 0" (field_expression "sqlite3Config.bMemstat" identifier . field_identifier) == number_literal) )) (compound_statement "{\n                    (*sqlite3Config.m.xFree)(local_48);\n                  }" { (expression_statement "(*sqlite3Config.m.xFree)(local_48);" (call_expression "(*sqlite3Config.m.xFree)(local_48)" (parenthesized_expression "(*sqlite3Config.m.xFree)" ( (pointer_expression "*sqlite3Config.m.xFree" * (field_expression "sqlite3Config.m.xFree" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(local_48)" ( identifier ))) ;) }) (else_clause "else {\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }" else (compound_statement "{\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }\n                    iVar20 = (*sqlite3Config.m.xSize)(pcVar9);\n                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;\n                    (*sqlite3Config.m.xFree)(pcVar9);\n                    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }\n                  }" { (if_statement "if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }" if (parenthesized_expression "(mem0.mutex != (sqlite3_mutex *)0x0)" ( (binary_expression "mem0.mutex != (sqlite3_mutex *)0x0" (field_expression "mem0.mutex" identifier . field_identifier) != (cast_expression "(sqlite3_mutex *)0x0" ( (type_descriptor "sqlite3_mutex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n                    }" { (expression_statement "(*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);" (call_expression "(*sqlite3Config.mutex.xMutexEnter)(mem0.mutex)" (parenthesized_expression "(*sqlite3Config.mutex.xMutexEnter)" ( (pointer_expression "*sqlite3Config.mutex.xMutexEnter" * (field_expression "sqlite3Config.mutex.xMutexEnter" (field_expression "sqlite3Config.mutex" identifier . field_identifier) . field_identifier)) )) (argument_list "(mem0.mutex)" ( (field_expression "mem0.mutex" identifier . field_identifier) ))) ;) })) (expression_statement "iVar20 = (*sqlite3Config.m.xSize)(pcVar9);" (assignment_expression "iVar20 = (*sqlite3Config.m.xSize)(pcVar9)" identifier = (call_expression "(*sqlite3Config.m.xSize)(pcVar9)" (parenthesized_expression "(*sqlite3Config.m.xSize)" ( (pointer_expression "*sqlite3Config.m.xSize" * (field_expression "sqlite3Config.m.xSize" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(pcVar9)" ( identifier )))) ;) (expression_statement "sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;" (assignment_expression "sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1" (subscript_expression "sqlite3Stat.nowValue[9]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) = (binary_expression "sqlite3Stat.nowValue[9] - 1" (subscript_expression "sqlite3Stat.nowValue[9]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) - number_literal)) ;) (expression_statement "sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20;" (assignment_expression "sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar20" (subscript_expression "sqlite3Stat.nowValue[0]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) = (binary_expression "sqlite3Stat.nowValue[0] - iVar20" (subscript_expression "sqlite3Stat.nowValue[0]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) - identifier)) ;) (expression_statement "(*sqlite3Config.m.xFree)(pcVar9);" (call_expression "(*sqlite3Config.m.xFree)(pcVar9)" (parenthesized_expression "(*sqlite3Config.m.xFree)" ( (pointer_expression "*sqlite3Config.m.xFree" * (field_expression "sqlite3Config.m.xFree" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(pcVar9)" ( identifier ))) ;) (if_statement "if (mem0.mutex != (sqlite3_mutex *)0x0) {\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }" if (parenthesized_expression "(mem0.mutex != (sqlite3_mutex *)0x0)" ( (binary_expression "mem0.mutex != (sqlite3_mutex *)0x0" (field_expression "mem0.mutex" identifier . field_identifier) != (cast_expression "(sqlite3_mutex *)0x0" ( (type_descriptor "sqlite3_mutex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n                    }" { (expression_statement "(*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);" (call_expression "(*sqlite3Config.mutex.xMutexLeave)(mem0.mutex)" (parenthesized_expression "(*sqlite3Config.mutex.xMutexLeave)" ( (pointer_expression "*sqlite3Config.mutex.xMutexLeave" * (field_expression "sqlite3Config.mutex.xMutexLeave" (field_expression "sqlite3Config.mutex" identifier . field_identifier) . field_identifier)) )) (argument_list "(mem0.mutex)" ( (field_expression "mem0.mutex" identifier . field_identifier) ))) ;) })) }))) })) (expression_statement "bVar30 = 0xfffffffe < local_114;" (assignment_expression "bVar30 = 0xfffffffe < local_114" identifier = (binary_expression "0xfffffffe < local_114" number_literal < identifier)) ;) (expression_statement "local_114 = (sqlite3_stmt *)((int)local_114 + 1);" (assignment_expression "local_114 = (sqlite3_stmt *)((int)local_114 + 1)" identifier = (cast_expression "(sqlite3_stmt *)((int)local_114 + 1)" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_114 + 1)" ( (binary_expression "(int)local_114 + 1" (cast_expression "(int)local_114" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_110 = local_110 + (uint)bVar30;" (assignment_expression "local_110 = local_110 + (uint)bVar30" identifier = (binary_expression "local_110 + (uint)bVar30" identifier + (cast_expression "(uint)bVar30" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "((int)local_114 < (int)pVtab[0x15].pModule)" ( (binary_expression "(int)local_114 < (int)pVtab[0x15].pModule" (cast_expression "(int)local_114" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pVtab[0x15].pModule" ( (type_descriptor "int" primitive_type) ) (field_expression "pVtab[0x15].pModule" (subscript_expression "pVtab[0x15]" identifier [ number_literal ]) . field_identifier))) )) ;) }) while (parenthesized_expression "(local_12c == (sqlite3_stmt *)0x0)" ( (binary_expression "local_12c == (sqlite3_stmt *)0x0" identifier == (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "sqlite3_reset(pAllLangid);" (call_expression "sqlite3_reset(pAllLangid)" identifier (argument_list "(pAllLangid)" ( identifier ))) ;) (expression_statement "local_f0 = local_12c;" (assignment_expression "local_f0 = local_12c" identifier = identifier) ;) })) }) (else_clause "else {\n          iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n          if (iVar8 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar8 = sqlite3_strnicmp(pcVar9,"automerge=",10);\n          if (iVar8 != 0) goto LAB_0013ba5f;\n          rc_2 = 0;\n          pcVar21 = pcVar9 + 10;\n          pStmt = (sqlite3_stmt *)0x0;\n          cVar6 = pcVar9[10];\n          psVar38 = (sqlite3_module *)0x0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar21 = pcVar21 + 1;\n              psVar38 = (sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10);\n              cVar6 = *pcVar21;\n              if (9 < (byte)(cVar6 - 0x30U)) break;\n            } while ((int)psVar38 < 0xccccccb);\n            if ((psVar38 == (sqlite3_module *)0x1) || (0x10 < (int)psVar38)) {\n              pVtab[4].pModule = (sqlite3_module *)0x8;\n            }\n            else {\n              pVtab[4].pModule = psVar38;\n            }\n          }\n          else {\n            pVtab[4].pModule = (sqlite3_module *)0x0;\n          }\n          if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n            fts3DbExec(&rc_2,(sqlite3 *)pVtab[1].pModule,\n                       "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                       ,pVtab[1].nRef,pVtab[1].zErrMsg);\n            local_f0 = (sqlite3_stmt *)rc_2;\n            if (rc_2 != 0) goto LAB_0013c0e0;\n            *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n          }\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x17,&pStmt,(sqlite3_value **)pRowid);\n          rc_2 = (int)local_f0;\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pStmt,2,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pStmt,(int)pVtab[4].pModule,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_step(pStmt);\n            local_f0 = (sqlite3_stmt *)sqlite3_reset(pStmt);\n          }\n        }" else (compound_statement "{\n          iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);\n          if (iVar8 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar8 = sqlite3_strnicmp(pcVar9,"automerge=",10);\n          if (iVar8 != 0) goto LAB_0013ba5f;\n          rc_2 = 0;\n          pcVar21 = pcVar9 + 10;\n          pStmt = (sqlite3_stmt *)0x0;\n          cVar6 = pcVar9[10];\n          psVar38 = (sqlite3_module *)0x0;\n          if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar21 = pcVar21 + 1;\n              psVar38 = (sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10);\n              cVar6 = *pcVar21;\n              if (9 < (byte)(cVar6 - 0x30U)) break;\n            } while ((int)psVar38 < 0xccccccb);\n            if ((psVar38 == (sqlite3_module *)0x1) || (0x10 < (int)psVar38)) {\n              pVtab[4].pModule = (sqlite3_module *)0x8;\n            }\n            else {\n              pVtab[4].pModule = psVar38;\n            }\n          }\n          else {\n            pVtab[4].pModule = (sqlite3_module *)0x0;\n          }\n          if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n            fts3DbExec(&rc_2,(sqlite3 *)pVtab[1].pModule,\n                       "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                       ,pVtab[1].nRef,pVtab[1].zErrMsg);\n            local_f0 = (sqlite3_stmt *)rc_2;\n            if (rc_2 != 0) goto LAB_0013c0e0;\n            *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n          }\n          local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x17,&pStmt,(sqlite3_value **)pRowid);\n          rc_2 = (int)local_f0;\n          if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pStmt,2,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pStmt,(int)pVtab[4].pModule,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_step(pStmt);\n            local_f0 = (sqlite3_stmt *)sqlite3_reset(pStmt);\n          }\n        }" { (expression_statement "iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6);" (assignment_expression "iVar8 = sqlite3_strnicmp(pcVar9,"merge=",6)" identifier = (call_expression "sqlite3_strnicmp(pcVar9,"merge=",6)" identifier (argument_list "(pcVar9,"merge=",6)" ( identifier , (string_literal ""merge="" " string_content ") , number_literal )))) ;) (if_statement "if (iVar8 == 0) goto LAB_0013be74;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013be74;" goto statement_identifier ;)) (labeled_statement "LAB_0013c124:\n          iVar8 = sqlite3_strnicmp(pcVar9,"automerge=",10);" statement_identifier : (expression_statement "iVar8 = sqlite3_strnicmp(pcVar9,"automerge=",10);" (assignment_expression "iVar8 = sqlite3_strnicmp(pcVar9,"automerge=",10)" identifier = (call_expression "sqlite3_strnicmp(pcVar9,"automerge=",10)" identifier (argument_list "(pcVar9,"automerge=",10)" ( identifier , (string_literal ""automerge="" " string_content ") , number_literal )))) ;)) (if_statement "if (iVar8 != 0) goto LAB_0013ba5f;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0013ba5f;" goto statement_identifier ;)) (expression_statement "rc_2 = 0;" (assignment_expression "rc_2 = 0" identifier = number_literal) ;) (expression_statement "pcVar21 = pcVar9 + 10;" (assignment_expression "pcVar21 = pcVar9 + 10" identifier = (binary_expression "pcVar9 + 10" identifier + number_literal)) ;) (expression_statement "pStmt = (sqlite3_stmt *)0x0;" (assignment_expression "pStmt = (sqlite3_stmt *)0x0" identifier = (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "cVar6 = pcVar9[10];" (assignment_expression "cVar6 = pcVar9[10]" identifier = (subscript_expression "pcVar9[10]" identifier [ number_literal ])) ;) (expression_statement "psVar38 = (sqlite3_module *)0x0;" (assignment_expression "psVar38 = (sqlite3_module *)0x0" identifier = (cast_expression "(sqlite3_module *)0x0" ( (type_descriptor "sqlite3_module *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((byte)(cVar6 - 0x30U) < 10) {\n            do {\n              pcVar21 = pcVar21 + 1;\n              psVar38 = (sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10);\n              cVar6 = *pcVar21;\n              if (9 < (byte)(cVar6 - 0x30U)) break;\n            } while ((int)psVar38 < 0xccccccb);\n            if ((psVar38 == (sqlite3_module *)0x1) || (0x10 < (int)psVar38)) {\n              pVtab[4].pModule = (sqlite3_module *)0x8;\n            }\n            else {\n              pVtab[4].pModule = psVar38;\n            }\n          }\n          else {\n            pVtab[4].pModule = (sqlite3_module *)0x0;\n          }" if (parenthesized_expression "((byte)(cVar6 - 0x30U) < 10)" ( (binary_expression "(byte)(cVar6 - 0x30U) < 10" (call_expression "(byte)(cVar6 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar6 - 0x30U)" ( (binary_expression "cVar6 - 0x30U" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n            do {\n              pcVar21 = pcVar21 + 1;\n              psVar38 = (sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10);\n              cVar6 = *pcVar21;\n              if (9 < (byte)(cVar6 - 0x30U)) break;\n            } while ((int)psVar38 < 0xccccccb);\n            if ((psVar38 == (sqlite3_module *)0x1) || (0x10 < (int)psVar38)) {\n              pVtab[4].pModule = (sqlite3_module *)0x8;\n            }\n            else {\n              pVtab[4].pModule = psVar38;\n            }\n          }" { (do_statement "do {\n              pcVar21 = pcVar21 + 1;\n              psVar38 = (sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10);\n              cVar6 = *pcVar21;\n              if (9 < (byte)(cVar6 - 0x30U)) break;\n            } while ((int)psVar38 < 0xccccccb);" do (compound_statement "{\n              pcVar21 = pcVar21 + 1;\n              psVar38 = (sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10);\n              cVar6 = *pcVar21;\n              if (9 < (byte)(cVar6 - 0x30U)) break;\n            }" { (expression_statement "pcVar21 = pcVar21 + 1;" (assignment_expression "pcVar21 = pcVar21 + 1" identifier = (binary_expression "pcVar21 + 1" identifier + number_literal)) ;) (expression_statement "psVar38 = (sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10);" (assignment_expression "psVar38 = (sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10)" identifier = (cast_expression "(sqlite3_module *)(cVar6 + -0x30 + (int)psVar38 * 10)" ( (type_descriptor "sqlite3_module *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cVar6 + -0x30 + (int)psVar38 * 10)" ( (binary_expression "cVar6 + -0x30 + (int)psVar38 * 10" (binary_expression "cVar6 + -0x30" identifier + number_literal) + (binary_expression "(int)psVar38 * 10" (cast_expression "(int)psVar38" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "cVar6 = *pcVar21;" (assignment_expression "cVar6 = *pcVar21" identifier = (pointer_expression "*pcVar21" * identifier)) ;) (if_statement "if (9 < (byte)(cVar6 - 0x30U)) break;" if (parenthesized_expression "(9 < (byte)(cVar6 - 0x30U))" ( (binary_expression "9 < (byte)(cVar6 - 0x30U)" number_literal < (call_expression "(byte)(cVar6 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar6 - 0x30U)" ( (binary_expression "cVar6 - 0x30U" identifier - number_literal) )))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "((int)psVar38 < 0xccccccb)" ( (binary_expression "(int)psVar38 < 0xccccccb" (cast_expression "(int)psVar38" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) ;) (if_statement "if ((psVar38 == (sqlite3_module *)0x1) || (0x10 < (int)psVar38)) {\n              pVtab[4].pModule = (sqlite3_module *)0x8;\n            }\n            else {\n              pVtab[4].pModule = psVar38;\n            }" if (parenthesized_expression "((psVar38 == (sqlite3_module *)0x1) || (0x10 < (int)psVar38))" ( (binary_expression "(psVar38 == (sqlite3_module *)0x1) || (0x10 < (int)psVar38)" (parenthesized_expression "(psVar38 == (sqlite3_module *)0x1)" ( (binary_expression "psVar38 == (sqlite3_module *)0x1" identifier == (cast_expression "(sqlite3_module *)0x1" ( (type_descriptor "sqlite3_module *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(0x10 < (int)psVar38)" ( (binary_expression "0x10 < (int)psVar38" number_literal < (cast_expression "(int)psVar38" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n              pVtab[4].pModule = (sqlite3_module *)0x8;\n            }" { (expression_statement "pVtab[4].pModule = (sqlite3_module *)0x8;" (assignment_expression "pVtab[4].pModule = (sqlite3_module *)0x8" (field_expression "pVtab[4].pModule" (subscript_expression "pVtab[4]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(sqlite3_module *)0x8" ( (type_descriptor "sqlite3_module *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n              pVtab[4].pModule = psVar38;\n            }" else (compound_statement "{\n              pVtab[4].pModule = psVar38;\n            }" { (expression_statement "pVtab[4].pModule = psVar38;" (assignment_expression "pVtab[4].pModule = psVar38" (field_expression "pVtab[4].pModule" (subscript_expression "pVtab[4]" identifier [ number_literal ]) . field_identifier) = identifier) ;) }))) }) (else_clause "else {\n            pVtab[4].pModule = (sqlite3_module *)0x0;\n          }" else (compound_statement "{\n            pVtab[4].pModule = (sqlite3_module *)0x0;\n          }" { (expression_statement "pVtab[4].pModule = (sqlite3_module *)0x0;" (assignment_expression "pVtab[4].pModule = (sqlite3_module *)0x0" (field_expression "pVtab[4].pModule" (subscript_expression "pVtab[4]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(sqlite3_module *)0x0" ( (type_descriptor "sqlite3_module *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (if_statement "if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {\n            fts3DbExec(&rc_2,(sqlite3 *)pVtab[1].pModule,\n                       "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                       ,pVtab[1].nRef,pVtab[1].zErrMsg);\n            local_f0 = (sqlite3_stmt *)rc_2;\n            if (rc_2 != 0) goto LAB_0013c0e0;\n            *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n          }" if (parenthesized_expression "(*(char *)((int)&pVtab[0x13].nRef + 1) == '\0')" ( (binary_expression "*(char *)((int)&pVtab[0x13].nRef + 1) == '\0'" (pointer_expression "*(char *)((int)&pVtab[0x13].nRef + 1)" * (cast_expression "(char *)((int)&pVtab[0x13].nRef + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pVtab[0x13].nRef + 1)" ( (binary_expression "(int)&pVtab[0x13].nRef + 1" (cast_expression "(int)&pVtab[0x13].nRef" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pVtab[0x13].nRef" & (field_expression "pVtab[0x13].nRef" (subscript_expression "pVtab[0x13]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            fts3DbExec(&rc_2,(sqlite3 *)pVtab[1].pModule,\n                       "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                       ,pVtab[1].nRef,pVtab[1].zErrMsg);\n            local_f0 = (sqlite3_stmt *)rc_2;\n            if (rc_2 != 0) goto LAB_0013c0e0;\n            *(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;\n          }" { (expression_statement "fts3DbExec(&rc_2,(sqlite3 *)pVtab[1].pModule,\n                       "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                       ,pVtab[1].nRef,pVtab[1].zErrMsg);" (call_expression "fts3DbExec(&rc_2,(sqlite3 *)pVtab[1].pModule,\n                       "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                       ,pVtab[1].nRef,pVtab[1].zErrMsg)" identifier (argument_list "(&rc_2,(sqlite3 *)pVtab[1].pModule,\n                       "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"\n                       ,pVtab[1].nRef,pVtab[1].zErrMsg)" ( (pointer_expression "&rc_2" & identifier) , (cast_expression "(sqlite3 *)pVtab[1].pModule" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVtab[1].pModule" (subscript_expression "pVtab[1]" identifier [ number_literal ]) . field_identifier)) , (string_literal ""CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"" " string_content escape_sequence string_content escape_sequence string_content ") , (field_expression "pVtab[1].nRef" (subscript_expression "pVtab[1]" identifier [ number_literal ]) . field_identifier) , (field_expression "pVtab[1].zErrMsg" (subscript_expression "pVtab[1]" identifier [ number_literal ]) . field_identifier) ))) ;) (expression_statement "local_f0 = (sqlite3_stmt *)rc_2;" (assignment_expression "local_f0 = (sqlite3_stmt *)rc_2" identifier = (cast_expression "(sqlite3_stmt *)rc_2" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (rc_2 != 0) goto LAB_0013c0e0;" if (parenthesized_expression "(rc_2 != 0)" ( (binary_expression "rc_2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0013c0e0;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1;" (assignment_expression "*(undefined1 *)((int)&pVtab[0x13].nRef + 1) = 1" (pointer_expression "*(undefined1 *)((int)&pVtab[0x13].nRef + 1)" * (cast_expression "(undefined1 *)((int)&pVtab[0x13].nRef + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pVtab[0x13].nRef + 1)" ( (binary_expression "(int)&pVtab[0x13].nRef + 1" (cast_expression "(int)&pVtab[0x13].nRef" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pVtab[0x13].nRef" & (field_expression "pVtab[0x13].nRef" (subscript_expression "pVtab[0x13]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) = number_literal) ;) })) (expression_statement "local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x17,&pStmt,(sqlite3_value **)pRowid);" (assignment_expression "local_f0 = (sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x17,&pStmt,(sqlite3_value **)pRowid)" identifier = (cast_expression "(sqlite3_stmt *)\n                     fts3SqlStmt((Fts3Table *)pVtab,0x17,&pStmt,(sqlite3_value **)pRowid)" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "fts3SqlStmt((Fts3Table *)pVtab,0x17,&pStmt,(sqlite3_value **)pRowid)" identifier (argument_list "((Fts3Table *)pVtab,0x17,&pStmt,(sqlite3_value **)pRowid)" ( (cast_expression "(Fts3Table *)pVtab" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (pointer_expression "&pStmt" & identifier) , (cast_expression "(sqlite3_value **)pRowid" ( (type_descriptor "sqlite3_value **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) ))))) ;) (expression_statement "rc_2 = (int)local_f0;" (assignment_expression "rc_2 = (int)local_f0" identifier = (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (local_f0 == (sqlite3_stmt *)0x0) {\n            sqlite3_bind_int64(pStmt,2,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pStmt,(int)pVtab[4].pModule,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_step(pStmt);\n            local_f0 = (sqlite3_stmt *)sqlite3_reset(pStmt);\n          }" if (parenthesized_expression "(local_f0 == (sqlite3_stmt *)0x0)" ( (binary_expression "local_f0 == (sqlite3_stmt *)0x0" identifier == (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            sqlite3_bind_int64(pStmt,2,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_bind_int64(pStmt,(int)pVtab[4].pModule,CONCAT44(in_stack_fffffec8,pRowid));\n            sqlite3_step(pStmt);\n            local_f0 = (sqlite3_stmt *)sqlite3_reset(pStmt);\n          }" { (expression_statement "sqlite3_bind_int64(pStmt,2,CONCAT44(in_stack_fffffec8,pRowid));" (call_expression "sqlite3_bind_int64(pStmt,2,CONCAT44(in_stack_fffffec8,pRowid))" identifier (argument_list "(pStmt,2,CONCAT44(in_stack_fffffec8,pRowid))" ( identifier , number_literal , (call_expression "CONCAT44(in_stack_fffffec8,pRowid)" identifier (argument_list "(in_stack_fffffec8,pRowid)" ( identifier , identifier ))) ))) ;) (expression_statement "sqlite3_bind_int64(pStmt,(int)pVtab[4].pModule,CONCAT44(in_stack_fffffec8,pRowid));" (call_expression "sqlite3_bind_int64(pStmt,(int)pVtab[4].pModule,CONCAT44(in_stack_fffffec8,pRowid))" identifier (argument_list "(pStmt,(int)pVtab[4].pModule,CONCAT44(in_stack_fffffec8,pRowid))" ( identifier , (cast_expression "(int)pVtab[4].pModule" ( (type_descriptor "int" primitive_type) ) (field_expression "pVtab[4].pModule" (subscript_expression "pVtab[4]" identifier [ number_literal ]) . field_identifier)) , (call_expression "CONCAT44(in_stack_fffffec8,pRowid)" identifier (argument_list "(in_stack_fffffec8,pRowid)" ( identifier , identifier ))) ))) ;) (expression_statement "sqlite3_step(pStmt);" (call_expression "sqlite3_step(pStmt)" identifier (argument_list "(pStmt)" ( identifier ))) ;) (expression_statement "local_f0 = (sqlite3_stmt *)sqlite3_reset(pStmt);" (assignment_expression "local_f0 = (sqlite3_stmt *)sqlite3_reset(pStmt)" identifier = (cast_expression "(sqlite3_stmt *)sqlite3_reset(pStmt)" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_reset(pStmt)" identifier (argument_list "(pStmt)" ( identifier ))))) ;) })) }))) }))) (labeled_statement "LAB_0013c0e0:\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;" statement_identifier : (expression_statement "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;" (assignment_expression "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg" identifier = (cast_expression "(sqlite3_blob *)pVtab[0x14].zErrMsg" ( (type_descriptor "sqlite3_blob *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVtab[0x14].zErrMsg" (subscript_expression "pVtab[0x14]" identifier [ number_literal ]) . field_identifier))) ;)) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) })) (expression_statement "pMVar10 = apVal[(int)&(pVtab[2].pModule)->xCreate];" (assignment_expression "pMVar10 = apVal[(int)&(pVtab[2].pModule)->xCreate]" identifier = (subscript_expression "apVal[(int)&(pVtab[2].pModule)->xCreate]" identifier [ (cast_expression "(int)&(pVtab[2].pModule)->xCreate" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pVtab[2].pModule)->xCreate" & (field_expression "(pVtab[2].pModule)->xCreate" (parenthesized_expression "(pVtab[2].pModule)" ( (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier) )) -> field_identifier))) ])) ;) (expression_statement "uVar2 = pMVar10->flags;" (assignment_expression "uVar2 = pMVar10->flags" identifier = (field_expression "pMVar10->flags" identifier -> field_identifier)) ;) (if_statement "if ((uVar2 & 4) == 0) {\n      if ((uVar2 & 8) == 0) {\n        if ((uVar2 & 0x12) == 0) goto LAB_0013b900;\n        iVar32 = memIntValue(pMVar10);\n        iVar8 = (int)iVar32;\n      }\n      else {\n        iVar32 = doubleToInt64((pMVar10->u).r);\n        iVar8 = (int)iVar32;\n      }\n    }\n    else {\n      iVar8 = (pMVar10->u).nZero;\n    }" if (parenthesized_expression "((uVar2 & 4) == 0)" ( (binary_expression "(uVar2 & 4) == 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((uVar2 & 8) == 0) {\n        if ((uVar2 & 0x12) == 0) goto LAB_0013b900;\n        iVar32 = memIntValue(pMVar10);\n        iVar8 = (int)iVar32;\n      }\n      else {\n        iVar32 = doubleToInt64((pMVar10->u).r);\n        iVar8 = (int)iVar32;\n      }\n    }" { (if_statement "if ((uVar2 & 8) == 0) {\n        if ((uVar2 & 0x12) == 0) goto LAB_0013b900;\n        iVar32 = memIntValue(pMVar10);\n        iVar8 = (int)iVar32;\n      }\n      else {\n        iVar32 = doubleToInt64((pMVar10->u).r);\n        iVar8 = (int)iVar32;\n      }" if (parenthesized_expression "((uVar2 & 8) == 0)" ( (binary_expression "(uVar2 & 8) == 0" (parenthesized_expression "(uVar2 & 8)" ( (binary_expression "uVar2 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((uVar2 & 0x12) == 0) goto LAB_0013b900;\n        iVar32 = memIntValue(pMVar10);\n        iVar8 = (int)iVar32;\n      }" { (if_statement "if ((uVar2 & 0x12) == 0) goto LAB_0013b900;" if (parenthesized_expression "((uVar2 & 0x12) == 0)" ( (binary_expression "(uVar2 & 0x12) == 0" (parenthesized_expression "(uVar2 & 0x12)" ( (binary_expression "uVar2 & 0x12" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0013b900;" goto statement_identifier ;)) (expression_statement "iVar32 = memIntValue(pMVar10);" (assignment_expression "iVar32 = memIntValue(pMVar10)" identifier = (call_expression "memIntValue(pMVar10)" identifier (argument_list "(pMVar10)" ( identifier )))) ;) (expression_statement "iVar8 = (int)iVar32;" (assignment_expression "iVar8 = (int)iVar32" identifier = (cast_expression "(int)iVar32" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n        iVar32 = doubleToInt64((pMVar10->u).r);\n        iVar8 = (int)iVar32;\n      }" else (compound_statement "{\n        iVar32 = doubleToInt64((pMVar10->u).r);\n        iVar8 = (int)iVar32;\n      }" { (expression_statement "iVar32 = doubleToInt64((pMVar10->u).r);" (assignment_expression "iVar32 = doubleToInt64((pMVar10->u).r)" identifier = (call_expression "doubleToInt64((pMVar10->u).r)" identifier (argument_list "((pMVar10->u).r)" ( (field_expression "(pMVar10->u).r" (parenthesized_expression "(pMVar10->u)" ( (field_expression "pMVar10->u" identifier -> field_identifier) )) . field_identifier) )))) ;) (expression_statement "iVar8 = (int)iVar32;" (assignment_expression "iVar8 = (int)iVar32" identifier = (cast_expression "(int)iVar32" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) }) (else_clause "else {\n      iVar8 = (pMVar10->u).nZero;\n    }" else (compound_statement "{\n      iVar8 = (pMVar10->u).nZero;\n    }" { (expression_statement "iVar8 = (pMVar10->u).nZero;" (assignment_expression "iVar8 = (pMVar10->u).nZero" identifier = (field_expression "(pMVar10->u).nZero" (parenthesized_expression "(pMVar10->u)" ( (field_expression "pMVar10->u" identifier -> field_identifier) )) . field_identifier)) ;) }))) (if_statement "if (iVar8 < 0) {\n      rc = 0x13;\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n      goto LAB_0013ba95;\n    }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n      rc = 0x13;\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n      goto LAB_0013ba95;\n    }" { (expression_statement "rc = 0x13;" (assignment_expression "rc = 0x13" identifier = number_literal) ;) (expression_statement "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;" (assignment_expression "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg" identifier = (cast_expression "(sqlite3_blob *)pVtab[0x14].zErrMsg" ( (type_descriptor "sqlite3_blob *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVtab[0x14].zErrMsg" (subscript_expression "pVtab[0x14]" identifier [ number_literal ]) . field_identifier))) ;) (goto_statement "goto LAB_0013ba95;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0013b900:\n  piDocid = (sqlite3_int64 *)sqlite3_initialize();" statement_identifier : (expression_statement "piDocid = (sqlite3_int64 *)sqlite3_initialize();" (assignment_expression "piDocid = (sqlite3_int64 *)sqlite3_initialize()" identifier = (cast_expression "(sqlite3_int64 *)sqlite3_initialize()" ( (type_descriptor "sqlite3_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_initialize()" identifier (argument_list "()" ( ))))) ;)) (if_statement "if ((piDocid != (sqlite3_int64 *)0x0) ||\n     (psVar7 = (sqlite3_value *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid)),\n     psVar7 == (sqlite3_value *)0x0)) {\n    rc = 7;\n    pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    goto LAB_0013ba95;\n  }" if (parenthesized_expression "((piDocid != (sqlite3_int64 *)0x0) ||\n     (psVar7 = (sqlite3_value *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid)),\n     psVar7 == (sqlite3_value *)0x0))" ( (binary_expression "(piDocid != (sqlite3_int64 *)0x0) ||\n     (psVar7 = (sqlite3_value *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid)),\n     psVar7 == (sqlite3_value *)0x0)" (parenthesized_expression "(piDocid != (sqlite3_int64 *)0x0)" ( (binary_expression "piDocid != (sqlite3_int64 *)0x0" identifier != (cast_expression "(sqlite3_int64 *)0x0" ( (type_descriptor "sqlite3_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(psVar7 = (sqlite3_value *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid)),\n     psVar7 == (sqlite3_value *)0x0)" ( (comma_expression "psVar7 = (sqlite3_value *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid)),\n     psVar7 == (sqlite3_value *)0x0" (assignment_expression "psVar7 = (sqlite3_value *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid))" identifier = (cast_expression "(sqlite3_value *)sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid))" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3Malloc(CONCAT44(in_stack_fffffec8,pRowid))" identifier (argument_list "(CONCAT44(in_stack_fffffec8,pRowid))" ( (call_expression "CONCAT44(in_stack_fffffec8,pRowid)" identifier (argument_list "(in_stack_fffffec8,pRowid)" ( identifier , identifier ))) ))))) , (binary_expression "psVar7 == (sqlite3_value *)0x0" identifier == (cast_expression "(sqlite3_value *)0x0" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    rc = 7;\n    pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    goto LAB_0013ba95;\n  }" { (expression_statement "rc = 7;" (assignment_expression "rc = 7" identifier = number_literal) ;) (expression_statement "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;" (assignment_expression "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg" identifier = (cast_expression "(sqlite3_blob *)pVtab[0x14].zErrMsg" ( (type_descriptor "sqlite3_blob *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVtab[0x14].zErrMsg" (subscript_expression "pVtab[0x14]" identifier [ number_literal ]) . field_identifier))) ;) (goto_statement "goto LAB_0013ba95;" goto statement_identifier ;) })) (expression_statement "psVar38 = pVtab[2].pModule;" (assignment_expression "psVar38 = pVtab[2].pModule" identifier = (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "aSzDel = (u32 *)((int)((int)&psVar38->iVersion + 1) * 8);" (assignment_expression "aSzDel = (u32 *)((int)((int)&psVar38->iVersion + 1) * 8)" identifier = (cast_expression "(u32 *)((int)((int)&psVar38->iVersion + 1) * 8)" ( (type_descriptor "u32 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((int)&psVar38->iVersion + 1) * 8)" ( (binary_expression "(int)((int)&psVar38->iVersion + 1) * 8" (cast_expression "(int)((int)&psVar38->iVersion + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&psVar38->iVersion + 1)" ( (binary_expression "(int)&psVar38->iVersion + 1" (cast_expression "(int)&psVar38->iVersion" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar38->iVersion" & (field_expression "psVar38->iVersion" identifier -> field_identifier))) + number_literal) ))) * number_literal) )))) ;) (expression_statement "piVar35 = (int *)0x0;" (assignment_expression "piVar35 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "memset(psVar7,0,(size_t)aSzDel);" (call_expression "memset(psVar7,0,(size_t)aSzDel)" identifier (argument_list "(psVar7,0,(size_t)aSzDel)" ( identifier , number_literal , (cast_expression "(size_t)aSzDel" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) (if_statement "if (pVtab[0x16].pModule == (sqlite3_module *)0x0) {\n    iVar8 = fts3SqlStmt((Fts3Table *)pVtab,0x10,&pStmt,(sqlite3_value **)pRowid);\n    psVar19 = pStmt;\n    if (iVar8 == 0) {\n      iVar8 = vdbeUnbind((Vdbe *)pStmt,1);\n      if ((iVar8 == 0) && (*(sqlite3_mutex **)(*(int *)psVar19 + 0xc) != (sqlite3_mutex *)0x0)) {\n        (*sqlite3Config.mutex.xMutexLeave)(*(sqlite3_mutex **)(*(int *)psVar19 + 0xc));\n      }\n      sqlite3_step(pStmt);\n      rc = sqlite3_reset(pStmt);\n      iVar8 = rc;\n      if (rc == 0) {\n        if (1 < nArg) {\n          if (pVtab[3].nRef == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }\n  }\n  else {\n    rc = 0;\n    if (nArg < 2) {\nLAB_0013baf0:\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') {\nLAB_0013bce0:\n        iVar8 = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n        rc = iVar8;\n        goto LAB_0013bcfe;\n      }\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n    }\n    else if (pVtab[3].nRef == 0) {\nLAB_0013bc30:\n      pMVar10 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 3)];\n      if ((aType_23891[pMVar10->flags & 0x1f] == '\x05') &&\n         (pMVar10 = apVal[1], aType_23891[pMVar10->flags & 0x1f] == '\x05')) {\nLAB_0013c280:\n        piDocid = (sqlite3_int64 *)0x0;\n      }\n      else {\n        if (aType_23891[(*apVal)->flags & 0x1f] == '\x05') {\nLAB_0013bc87:\n          if (sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==\n              '\x05') {\n            rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n            piDocid = (sqlite3_int64 *)0x0;\n          }\n          else {\n            rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n            piDocid = (sqlite3_int64 *)&DAT_00000001;\n          }\n        }\n        else {\n          iVar32 = sqlite3VdbeIntValue(*apVal);\n          piDocid = (sqlite3_int64 *)iVar32;\n          iVar33 = sqlite3VdbeIntValue(pMVar10);\n          if (iVar33 != CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid)) goto LAB_0013bc87;\n          piDocid = (sqlite3_int64 *)0x0;\n        }\n        iVar8 = rc;\n        if (rc != 0) goto LAB_0013bb29;\n      }\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      iVar8 = 0;\nLAB_0013bcfe:\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      if ((1 < nArg) && (iVar8 == 0)) {\n        iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n        local_124 = (sqlite3_module *)iVar32;\n        if (piDocid == (sqlite3_int64 *)0x0) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n      local_124 = (sqlite3_module *)iVar32;\nLAB_0013b9c2:\n      rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n      if (rc == 0x13) {\n        iVar8 = rc;\n        if (pVtab[3].nRef == 0) {\n          rc = 0x10b;\n          iVar8 = rc;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        iVar8 = rc;\n        if (rc == 0) {\n          psVar38 = (((Fts3Table *)pRowid)->base).pModule;\n          pcVar9 = (char *)(((Fts3Table *)pRowid)->base).nRef;\n          pcVar21 = pVtab[0x16].zErrMsg;\n          uVar11 = (uint)(psVar38 < (sqlite3_module *)pVtab[0x16].nRef);\n          if (((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n             (iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0)) {\n            rc = 0;\n            pVtab[0x17].pModule = local_124;\n            psVar18 = pVtab[2].pModule;\n            pVtab[0x16].zErrMsg = pcVar9;\n            pVtab[0x16].nRef = (int)psVar38;\n            pVtab[0x17].nRef = 0;\n            iVar13 = 0;\n            iVar8 = iVar20;\n            if (0 < (int)psVar18) {\n              do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);\n            }\n          }\n        }\n      }\n      rc = iVar8;\n      if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\n        fts3InsertDocsize(&rc,(Fts3Table *)pVtab,(u32 *)local_12c);\n      }\n      nChng = nChng + 1;\n    }\n    iVar8 = rc;\n    if ((char)pVtab[0x13].nRef != '\0') {\n      fts3UpdateDocTotals(&rc,(Fts3Table *)pVtab,(u32 *)local_12c,(u32 *)psVar7,nChng);\n      iVar8 = rc;\n    }\n  }" if (parenthesized_expression "(pVtab[0x16].pModule == (sqlite3_module *)0x0)" ( (binary_expression "pVtab[0x16].pModule == (sqlite3_module *)0x0" (field_expression "pVtab[0x16].pModule" (subscript_expression "pVtab[0x16]" identifier [ number_literal ]) . field_identifier) == (cast_expression "(sqlite3_module *)0x0" ( (type_descriptor "sqlite3_module *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar8 = fts3SqlStmt((Fts3Table *)pVtab,0x10,&pStmt,(sqlite3_value **)pRowid);\n    psVar19 = pStmt;\n    if (iVar8 == 0) {\n      iVar8 = vdbeUnbind((Vdbe *)pStmt,1);\n      if ((iVar8 == 0) && (*(sqlite3_mutex **)(*(int *)psVar19 + 0xc) != (sqlite3_mutex *)0x0)) {\n        (*sqlite3Config.mutex.xMutexLeave)(*(sqlite3_mutex **)(*(int *)psVar19 + 0xc));\n      }\n      sqlite3_step(pStmt);\n      rc = sqlite3_reset(pStmt);\n      iVar8 = rc;\n      if (rc == 0) {\n        if (1 < nArg) {\n          if (pVtab[3].nRef == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }\n  }" { (expression_statement "iVar8 = fts3SqlStmt((Fts3Table *)pVtab,0x10,&pStmt,(sqlite3_value **)pRowid);" (assignment_expression "iVar8 = fts3SqlStmt((Fts3Table *)pVtab,0x10,&pStmt,(sqlite3_value **)pRowid)" identifier = (call_expression "fts3SqlStmt((Fts3Table *)pVtab,0x10,&pStmt,(sqlite3_value **)pRowid)" identifier (argument_list "((Fts3Table *)pVtab,0x10,&pStmt,(sqlite3_value **)pRowid)" ( (cast_expression "(Fts3Table *)pVtab" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (pointer_expression "&pStmt" & identifier) , (cast_expression "(sqlite3_value **)pRowid" ( (type_descriptor "sqlite3_value **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) )))) ;) (expression_statement "psVar19 = pStmt;" (assignment_expression "psVar19 = pStmt" identifier = identifier) ;) (if_statement "if (iVar8 == 0) {\n      iVar8 = vdbeUnbind((Vdbe *)pStmt,1);\n      if ((iVar8 == 0) && (*(sqlite3_mutex **)(*(int *)psVar19 + 0xc) != (sqlite3_mutex *)0x0)) {\n        (*sqlite3Config.mutex.xMutexLeave)(*(sqlite3_mutex **)(*(int *)psVar19 + 0xc));\n      }\n      sqlite3_step(pStmt);\n      rc = sqlite3_reset(pStmt);\n      iVar8 = rc;\n      if (rc == 0) {\n        if (1 < nArg) {\n          if (pVtab[3].nRef == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar8 = vdbeUnbind((Vdbe *)pStmt,1);\n      if ((iVar8 == 0) && (*(sqlite3_mutex **)(*(int *)psVar19 + 0xc) != (sqlite3_mutex *)0x0)) {\n        (*sqlite3Config.mutex.xMutexLeave)(*(sqlite3_mutex **)(*(int *)psVar19 + 0xc));\n      }\n      sqlite3_step(pStmt);\n      rc = sqlite3_reset(pStmt);\n      iVar8 = rc;\n      if (rc == 0) {\n        if (1 < nArg) {\n          if (pVtab[3].nRef == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }" { (expression_statement "iVar8 = vdbeUnbind((Vdbe *)pStmt,1);" (assignment_expression "iVar8 = vdbeUnbind((Vdbe *)pStmt,1)" identifier = (call_expression "vdbeUnbind((Vdbe *)pStmt,1)" identifier (argument_list "((Vdbe *)pStmt,1)" ( (cast_expression "(Vdbe *)pStmt" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if ((iVar8 == 0) && (*(sqlite3_mutex **)(*(int *)psVar19 + 0xc) != (sqlite3_mutex *)0x0)) {\n        (*sqlite3Config.mutex.xMutexLeave)(*(sqlite3_mutex **)(*(int *)psVar19 + 0xc));\n      }" if (parenthesized_expression "((iVar8 == 0) && (*(sqlite3_mutex **)(*(int *)psVar19 + 0xc) != (sqlite3_mutex *)0x0))" ( (binary_expression "(iVar8 == 0) && (*(sqlite3_mutex **)(*(int *)psVar19 + 0xc) != (sqlite3_mutex *)0x0)" (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) && (parenthesized_expression "(*(sqlite3_mutex **)(*(int *)psVar19 + 0xc) != (sqlite3_mutex *)0x0)" ( (binary_expression "*(sqlite3_mutex **)(*(int *)psVar19 + 0xc) != (sqlite3_mutex *)0x0" (pointer_expression "*(sqlite3_mutex **)(*(int *)psVar19 + 0xc)" * (cast_expression "(sqlite3_mutex **)(*(int *)psVar19 + 0xc)" ( (type_descriptor "sqlite3_mutex **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)psVar19 + 0xc)" ( (binary_expression "*(int *)psVar19 + 0xc" (pointer_expression "*(int *)psVar19" * (cast_expression "(int *)psVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) != (cast_expression "(sqlite3_mutex *)0x0" ( (type_descriptor "sqlite3_mutex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n        (*sqlite3Config.mutex.xMutexLeave)(*(sqlite3_mutex **)(*(int *)psVar19 + 0xc));\n      }" { (expression_statement "(*sqlite3Config.mutex.xMutexLeave)(*(sqlite3_mutex **)(*(int *)psVar19 + 0xc));" (call_expression "(*sqlite3Config.mutex.xMutexLeave)(*(sqlite3_mutex **)(*(int *)psVar19 + 0xc))" (parenthesized_expression "(*sqlite3Config.mutex.xMutexLeave)" ( (pointer_expression "*sqlite3Config.mutex.xMutexLeave" * (field_expression "sqlite3Config.mutex.xMutexLeave" (field_expression "sqlite3Config.mutex" identifier . field_identifier) . field_identifier)) )) (argument_list "(*(sqlite3_mutex **)(*(int *)psVar19 + 0xc))" ( (pointer_expression "*(sqlite3_mutex **)(*(int *)psVar19 + 0xc)" * (cast_expression "(sqlite3_mutex **)(*(int *)psVar19 + 0xc)" ( (type_descriptor "sqlite3_mutex **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)psVar19 + 0xc)" ( (binary_expression "*(int *)psVar19 + 0xc" (pointer_expression "*(int *)psVar19" * (cast_expression "(int *)psVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) ))) ;) })) (expression_statement "sqlite3_step(pStmt);" (call_expression "sqlite3_step(pStmt)" identifier (argument_list "(pStmt)" ( identifier ))) ;) (expression_statement "rc = sqlite3_reset(pStmt);" (assignment_expression "rc = sqlite3_reset(pStmt)" identifier = (call_expression "sqlite3_reset(pStmt)" identifier (argument_list "(pStmt)" ( identifier )))) ;) (expression_statement "iVar8 = rc;" (assignment_expression "iVar8 = rc" identifier = identifier) ;) (if_statement "if (rc == 0) {\n        if (1 < nArg) {\n          if (pVtab[3].nRef == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }" if (parenthesized_expression "(rc == 0)" ( (binary_expression "rc == 0" identifier == number_literal) )) (compound_statement "{\n        if (1 < nArg) {\n          if (pVtab[3].nRef == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }" { (if_statement "if (1 < nArg) {\n          if (pVtab[3].nRef == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }" if (parenthesized_expression "(1 < nArg)" ( (binary_expression "1 < nArg" number_literal < identifier) )) (compound_statement "{\n          if (pVtab[3].nRef == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }" { (if_statement "if (pVtab[3].nRef == 0) goto LAB_0013bc30;" if (parenthesized_expression "(pVtab[3].nRef == 0)" ( (binary_expression "pVtab[3].nRef == 0" (field_expression "pVtab[3].nRef" (subscript_expression "pVtab[3]" identifier [ number_literal ]) . field_identifier) == number_literal) )) (goto_statement "goto LAB_0013bc30;" goto statement_identifier ;)) (goto_statement "goto LAB_0013c280;" goto statement_identifier ;) })) (goto_statement "goto LAB_0013baf0;" goto statement_identifier ;) })) })) }) (else_clause "else {\n    rc = 0;\n    if (nArg < 2) {\nLAB_0013baf0:\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') {\nLAB_0013bce0:\n        iVar8 = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n        rc = iVar8;\n        goto LAB_0013bcfe;\n      }\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n    }\n    else if (pVtab[3].nRef == 0) {\nLAB_0013bc30:\n      pMVar10 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 3)];\n      if ((aType_23891[pMVar10->flags & 0x1f] == '\x05') &&\n         (pMVar10 = apVal[1], aType_23891[pMVar10->flags & 0x1f] == '\x05')) {\nLAB_0013c280:\n        piDocid = (sqlite3_int64 *)0x0;\n      }\n      else {\n        if (aType_23891[(*apVal)->flags & 0x1f] == '\x05') {\nLAB_0013bc87:\n          if (sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==\n              '\x05') {\n            rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n            piDocid = (sqlite3_int64 *)0x0;\n          }\n          else {\n            rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n            piDocid = (sqlite3_int64 *)&DAT_00000001;\n          }\n        }\n        else {\n          iVar32 = sqlite3VdbeIntValue(*apVal);\n          piDocid = (sqlite3_int64 *)iVar32;\n          iVar33 = sqlite3VdbeIntValue(pMVar10);\n          if (iVar33 != CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid)) goto LAB_0013bc87;\n          piDocid = (sqlite3_int64 *)0x0;\n        }\n        iVar8 = rc;\n        if (rc != 0) goto LAB_0013bb29;\n      }\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      iVar8 = 0;\nLAB_0013bcfe:\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      if ((1 < nArg) && (iVar8 == 0)) {\n        iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n        local_124 = (sqlite3_module *)iVar32;\n        if (piDocid == (sqlite3_int64 *)0x0) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n      local_124 = (sqlite3_module *)iVar32;\nLAB_0013b9c2:\n      rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n      if (rc == 0x13) {\n        iVar8 = rc;\n        if (pVtab[3].nRef == 0) {\n          rc = 0x10b;\n          iVar8 = rc;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        iVar8 = rc;\n        if (rc == 0) {\n          psVar38 = (((Fts3Table *)pRowid)->base).pModule;\n          pcVar9 = (char *)(((Fts3Table *)pRowid)->base).nRef;\n          pcVar21 = pVtab[0x16].zErrMsg;\n          uVar11 = (uint)(psVar38 < (sqlite3_module *)pVtab[0x16].nRef);\n          if (((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n             (iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0)) {\n            rc = 0;\n            pVtab[0x17].pModule = local_124;\n            psVar18 = pVtab[2].pModule;\n            pVtab[0x16].zErrMsg = pcVar9;\n            pVtab[0x16].nRef = (int)psVar38;\n            pVtab[0x17].nRef = 0;\n            iVar13 = 0;\n            iVar8 = iVar20;\n            if (0 < (int)psVar18) {\n              do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);\n            }\n          }\n        }\n      }\n      rc = iVar8;\n      if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\n        fts3InsertDocsize(&rc,(Fts3Table *)pVtab,(u32 *)local_12c);\n      }\n      nChng = nChng + 1;\n    }\n    iVar8 = rc;\n    if ((char)pVtab[0x13].nRef != '\0') {\n      fts3UpdateDocTotals(&rc,(Fts3Table *)pVtab,(u32 *)local_12c,(u32 *)psVar7,nChng);\n      iVar8 = rc;\n    }\n  }" else (compound_statement "{\n    rc = 0;\n    if (nArg < 2) {\nLAB_0013baf0:\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') {\nLAB_0013bce0:\n        iVar8 = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n        rc = iVar8;\n        goto LAB_0013bcfe;\n      }\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n    }\n    else if (pVtab[3].nRef == 0) {\nLAB_0013bc30:\n      pMVar10 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 3)];\n      if ((aType_23891[pMVar10->flags & 0x1f] == '\x05') &&\n         (pMVar10 = apVal[1], aType_23891[pMVar10->flags & 0x1f] == '\x05')) {\nLAB_0013c280:\n        piDocid = (sqlite3_int64 *)0x0;\n      }\n      else {\n        if (aType_23891[(*apVal)->flags & 0x1f] == '\x05') {\nLAB_0013bc87:\n          if (sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==\n              '\x05') {\n            rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n            piDocid = (sqlite3_int64 *)0x0;\n          }\n          else {\n            rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n            piDocid = (sqlite3_int64 *)&DAT_00000001;\n          }\n        }\n        else {\n          iVar32 = sqlite3VdbeIntValue(*apVal);\n          piDocid = (sqlite3_int64 *)iVar32;\n          iVar33 = sqlite3VdbeIntValue(pMVar10);\n          if (iVar33 != CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid)) goto LAB_0013bc87;\n          piDocid = (sqlite3_int64 *)0x0;\n        }\n        iVar8 = rc;\n        if (rc != 0) goto LAB_0013bb29;\n      }\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      iVar8 = 0;\nLAB_0013bcfe:\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      if ((1 < nArg) && (iVar8 == 0)) {\n        iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n        local_124 = (sqlite3_module *)iVar32;\n        if (piDocid == (sqlite3_int64 *)0x0) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n      local_124 = (sqlite3_module *)iVar32;\nLAB_0013b9c2:\n      rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n      if (rc == 0x13) {\n        iVar8 = rc;\n        if (pVtab[3].nRef == 0) {\n          rc = 0x10b;\n          iVar8 = rc;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        iVar8 = rc;\n        if (rc == 0) {\n          psVar38 = (((Fts3Table *)pRowid)->base).pModule;\n          pcVar9 = (char *)(((Fts3Table *)pRowid)->base).nRef;\n          pcVar21 = pVtab[0x16].zErrMsg;\n          uVar11 = (uint)(psVar38 < (sqlite3_module *)pVtab[0x16].nRef);\n          if (((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n             (iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0)) {\n            rc = 0;\n            pVtab[0x17].pModule = local_124;\n            psVar18 = pVtab[2].pModule;\n            pVtab[0x16].zErrMsg = pcVar9;\n            pVtab[0x16].nRef = (int)psVar38;\n            pVtab[0x17].nRef = 0;\n            iVar13 = 0;\n            iVar8 = iVar20;\n            if (0 < (int)psVar18) {\n              do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);\n            }\n          }\n        }\n      }\n      rc = iVar8;\n      if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\n        fts3InsertDocsize(&rc,(Fts3Table *)pVtab,(u32 *)local_12c);\n      }\n      nChng = nChng + 1;\n    }\n    iVar8 = rc;\n    if ((char)pVtab[0x13].nRef != '\0') {\n      fts3UpdateDocTotals(&rc,(Fts3Table *)pVtab,(u32 *)local_12c,(u32 *)psVar7,nChng);\n      iVar8 = rc;\n    }\n  }" { (expression_statement "rc = 0;" (assignment_expression "rc = 0" identifier = number_literal) ;) (if_statement "if (nArg < 2) {\nLAB_0013baf0:\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') {\nLAB_0013bce0:\n        iVar8 = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n        rc = iVar8;\n        goto LAB_0013bcfe;\n      }\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n    }\n    else if (pVtab[3].nRef == 0) {\nLAB_0013bc30:\n      pMVar10 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 3)];\n      if ((aType_23891[pMVar10->flags & 0x1f] == '\x05') &&\n         (pMVar10 = apVal[1], aType_23891[pMVar10->flags & 0x1f] == '\x05')) {\nLAB_0013c280:\n        piDocid = (sqlite3_int64 *)0x0;\n      }\n      else {\n        if (aType_23891[(*apVal)->flags & 0x1f] == '\x05') {\nLAB_0013bc87:\n          if (sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==\n              '\x05') {\n            rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n            piDocid = (sqlite3_int64 *)0x0;\n          }\n          else {\n            rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n            piDocid = (sqlite3_int64 *)&DAT_00000001;\n          }\n        }\n        else {\n          iVar32 = sqlite3VdbeIntValue(*apVal);\n          piDocid = (sqlite3_int64 *)iVar32;\n          iVar33 = sqlite3VdbeIntValue(pMVar10);\n          if (iVar33 != CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid)) goto LAB_0013bc87;\n          piDocid = (sqlite3_int64 *)0x0;\n        }\n        iVar8 = rc;\n        if (rc != 0) goto LAB_0013bb29;\n      }\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      iVar8 = 0;\nLAB_0013bcfe:\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      if ((1 < nArg) && (iVar8 == 0)) {\n        iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n        local_124 = (sqlite3_module *)iVar32;\n        if (piDocid == (sqlite3_int64 *)0x0) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n      local_124 = (sqlite3_module *)iVar32;\nLAB_0013b9c2:\n      rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n      if (rc == 0x13) {\n        iVar8 = rc;\n        if (pVtab[3].nRef == 0) {\n          rc = 0x10b;\n          iVar8 = rc;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        iVar8 = rc;\n        if (rc == 0) {\n          psVar38 = (((Fts3Table *)pRowid)->base).pModule;\n          pcVar9 = (char *)(((Fts3Table *)pRowid)->base).nRef;\n          pcVar21 = pVtab[0x16].zErrMsg;\n          uVar11 = (uint)(psVar38 < (sqlite3_module *)pVtab[0x16].nRef);\n          if (((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n             (iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0)) {\n            rc = 0;\n            pVtab[0x17].pModule = local_124;\n            psVar18 = pVtab[2].pModule;\n            pVtab[0x16].zErrMsg = pcVar9;\n            pVtab[0x16].nRef = (int)psVar38;\n            pVtab[0x17].nRef = 0;\n            iVar13 = 0;\n            iVar8 = iVar20;\n            if (0 < (int)psVar18) {\n              do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);\n            }\n          }\n        }\n      }\n      rc = iVar8;\n      if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\n        fts3InsertDocsize(&rc,(Fts3Table *)pVtab,(u32 *)local_12c);\n      }\n      nChng = nChng + 1;\n    }" if (parenthesized_expression "(nArg < 2)" ( (binary_expression "nArg < 2" identifier < number_literal) )) (compound_statement "{\nLAB_0013baf0:\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') {\nLAB_0013bce0:\n        iVar8 = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n        rc = iVar8;\n        goto LAB_0013bcfe;\n      }\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n    }" { (labeled_statement "LAB_0013baf0:\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') {\nLAB_0013bce0:\n        iVar8 = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n        rc = iVar8;\n        goto LAB_0013bcfe;\n      }" statement_identifier : (if_statement "if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') {\nLAB_0013bce0:\n        iVar8 = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n        rc = iVar8;\n        goto LAB_0013bcfe;\n      }" if (parenthesized_expression "(aType_23891[(*apVal)->flags & 0x1f] != '\x05')" ( (binary_expression "aType_23891[(*apVal)->flags & 0x1f] != '\x05'" (subscript_expression "aType_23891[(*apVal)->flags & 0x1f]" identifier [ (binary_expression "(*apVal)->flags & 0x1f" (field_expression "(*apVal)->flags" (parenthesized_expression "(*apVal)" ( (pointer_expression "*apVal" * identifier) )) -> field_identifier) & number_literal) ]) != (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0013bce0:\n        iVar8 = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n        rc = iVar8;\n        goto LAB_0013bcfe;\n      }" { (labeled_statement "LAB_0013bce0:\n        iVar8 = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);" statement_identifier : (expression_statement "iVar8 = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);" (assignment_expression "iVar8 = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel)" identifier = (call_expression "fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel)" identifier (argument_list "((Fts3Table *)pVtab,psVar7,piVar35,aSzDel)" ( (cast_expression "(Fts3Table *)pVtab" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier )))) ;)) (expression_statement "rc = iVar8;" (assignment_expression "rc = iVar8" identifier = identifier) ;) (goto_statement "goto LAB_0013bcfe;" goto statement_identifier ;) }))) (expression_statement "local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);" (assignment_expression "local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4)" identifier = (cast_expression "(sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4)" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar7->u + (int)psVar38 * 4 + 4)" ( (binary_expression "(int)&psVar7->u + (int)psVar38 * 4 + 4" (binary_expression "(int)&psVar7->u + (int)psVar38 * 4" (cast_expression "(int)&psVar7->u" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar7->u" & (field_expression "psVar7->u" identifier -> field_identifier))) + (binary_expression "(int)psVar38 * 4" (cast_expression "(int)psVar38" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) }) (else_clause "else if (pVtab[3].nRef == 0) {\nLAB_0013bc30:\n      pMVar10 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 3)];\n      if ((aType_23891[pMVar10->flags & 0x1f] == '\x05') &&\n         (pMVar10 = apVal[1], aType_23891[pMVar10->flags & 0x1f] == '\x05')) {\nLAB_0013c280:\n        piDocid = (sqlite3_int64 *)0x0;\n      }\n      else {\n        if (aType_23891[(*apVal)->flags & 0x1f] == '\x05') {\nLAB_0013bc87:\n          if (sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==\n              '\x05') {\n            rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n            piDocid = (sqlite3_int64 *)0x0;\n          }\n          else {\n            rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n            piDocid = (sqlite3_int64 *)&DAT_00000001;\n          }\n        }\n        else {\n          iVar32 = sqlite3VdbeIntValue(*apVal);\n          piDocid = (sqlite3_int64 *)iVar32;\n          iVar33 = sqlite3VdbeIntValue(pMVar10);\n          if (iVar33 != CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid)) goto LAB_0013bc87;\n          piDocid = (sqlite3_int64 *)0x0;\n        }\n        iVar8 = rc;\n        if (rc != 0) goto LAB_0013bb29;\n      }\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      iVar8 = 0;\nLAB_0013bcfe:\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      if ((1 < nArg) && (iVar8 == 0)) {\n        iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n        local_124 = (sqlite3_module *)iVar32;\n        if (piDocid == (sqlite3_int64 *)0x0) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n      local_124 = (sqlite3_module *)iVar32;\nLAB_0013b9c2:\n      rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n      if (rc == 0x13) {\n        iVar8 = rc;\n        if (pVtab[3].nRef == 0) {\n          rc = 0x10b;\n          iVar8 = rc;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        iVar8 = rc;\n        if (rc == 0) {\n          psVar38 = (((Fts3Table *)pRowid)->base).pModule;\n          pcVar9 = (char *)(((Fts3Table *)pRowid)->base).nRef;\n          pcVar21 = pVtab[0x16].zErrMsg;\n          uVar11 = (uint)(psVar38 < (sqlite3_module *)pVtab[0x16].nRef);\n          if (((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n             (iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0)) {\n            rc = 0;\n            pVtab[0x17].pModule = local_124;\n            psVar18 = pVtab[2].pModule;\n            pVtab[0x16].zErrMsg = pcVar9;\n            pVtab[0x16].nRef = (int)psVar38;\n            pVtab[0x17].nRef = 0;\n            iVar13 = 0;\n            iVar8 = iVar20;\n            if (0 < (int)psVar18) {\n              do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);\n            }\n          }\n        }\n      }\n      rc = iVar8;\n      if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\n        fts3InsertDocsize(&rc,(Fts3Table *)pVtab,(u32 *)local_12c);\n      }\n      nChng = nChng + 1;\n    }" else (if_statement "if (pVtab[3].nRef == 0) {\nLAB_0013bc30:\n      pMVar10 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 3)];\n      if ((aType_23891[pMVar10->flags & 0x1f] == '\x05') &&\n         (pMVar10 = apVal[1], aType_23891[pMVar10->flags & 0x1f] == '\x05')) {\nLAB_0013c280:\n        piDocid = (sqlite3_int64 *)0x0;\n      }\n      else {\n        if (aType_23891[(*apVal)->flags & 0x1f] == '\x05') {\nLAB_0013bc87:\n          if (sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==\n              '\x05') {\n            rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n            piDocid = (sqlite3_int64 *)0x0;\n          }\n          else {\n            rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n            piDocid = (sqlite3_int64 *)&DAT_00000001;\n          }\n        }\n        else {\n          iVar32 = sqlite3VdbeIntValue(*apVal);\n          piDocid = (sqlite3_int64 *)iVar32;\n          iVar33 = sqlite3VdbeIntValue(pMVar10);\n          if (iVar33 != CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid)) goto LAB_0013bc87;\n          piDocid = (sqlite3_int64 *)0x0;\n        }\n        iVar8 = rc;\n        if (rc != 0) goto LAB_0013bb29;\n      }\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      iVar8 = 0;\nLAB_0013bcfe:\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      if ((1 < nArg) && (iVar8 == 0)) {\n        iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n        local_124 = (sqlite3_module *)iVar32;\n        if (piDocid == (sqlite3_int64 *)0x0) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n      local_124 = (sqlite3_module *)iVar32;\nLAB_0013b9c2:\n      rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n      if (rc == 0x13) {\n        iVar8 = rc;\n        if (pVtab[3].nRef == 0) {\n          rc = 0x10b;\n          iVar8 = rc;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        iVar8 = rc;\n        if (rc == 0) {\n          psVar38 = (((Fts3Table *)pRowid)->base).pModule;\n          pcVar9 = (char *)(((Fts3Table *)pRowid)->base).nRef;\n          pcVar21 = pVtab[0x16].zErrMsg;\n          uVar11 = (uint)(psVar38 < (sqlite3_module *)pVtab[0x16].nRef);\n          if (((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n             (iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0)) {\n            rc = 0;\n            pVtab[0x17].pModule = local_124;\n            psVar18 = pVtab[2].pModule;\n            pVtab[0x16].zErrMsg = pcVar9;\n            pVtab[0x16].nRef = (int)psVar38;\n            pVtab[0x17].nRef = 0;\n            iVar13 = 0;\n            iVar8 = iVar20;\n            if (0 < (int)psVar18) {\n              do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);\n            }\n          }\n        }\n      }\n      rc = iVar8;\n      if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\n        fts3InsertDocsize(&rc,(Fts3Table *)pVtab,(u32 *)local_12c);\n      }\n      nChng = nChng + 1;\n    }" if (parenthesized_expression "(pVtab[3].nRef == 0)" ( (binary_expression "pVtab[3].nRef == 0" (field_expression "pVtab[3].nRef" (subscript_expression "pVtab[3]" identifier [ number_literal ]) . field_identifier) == number_literal) )) (compound_statement "{\nLAB_0013bc30:\n      pMVar10 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 3)];\n      if ((aType_23891[pMVar10->flags & 0x1f] == '\x05') &&\n         (pMVar10 = apVal[1], aType_23891[pMVar10->flags & 0x1f] == '\x05')) {\nLAB_0013c280:\n        piDocid = (sqlite3_int64 *)0x0;\n      }\n      else {\n        if (aType_23891[(*apVal)->flags & 0x1f] == '\x05') {\nLAB_0013bc87:\n          if (sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==\n              '\x05') {\n            rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n            piDocid = (sqlite3_int64 *)0x0;\n          }\n          else {\n            rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n            piDocid = (sqlite3_int64 *)&DAT_00000001;\n          }\n        }\n        else {\n          iVar32 = sqlite3VdbeIntValue(*apVal);\n          piDocid = (sqlite3_int64 *)iVar32;\n          iVar33 = sqlite3VdbeIntValue(pMVar10);\n          if (iVar33 != CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid)) goto LAB_0013bc87;\n          piDocid = (sqlite3_int64 *)0x0;\n        }\n        iVar8 = rc;\n        if (rc != 0) goto LAB_0013bb29;\n      }\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      iVar8 = 0;\nLAB_0013bcfe:\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      if ((1 < nArg) && (iVar8 == 0)) {\n        iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n        local_124 = (sqlite3_module *)iVar32;\n        if (piDocid == (sqlite3_int64 *)0x0) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }" { (labeled_statement "LAB_0013bc30:\n      pMVar10 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 3)];" statement_identifier : (expression_statement "pMVar10 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 3)];" (assignment_expression "pMVar10 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 3)]" identifier = (subscript_expression "apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 3)]" identifier [ (cast_expression "(int)((int)&(pVtab[2].pModule)->iVersion + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&(pVtab[2].pModule)->iVersion + 3)" ( (binary_expression "(int)&(pVtab[2].pModule)->iVersion + 3" (cast_expression "(int)&(pVtab[2].pModule)->iVersion" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pVtab[2].pModule)->iVersion" & (field_expression "(pVtab[2].pModule)->iVersion" (parenthesized_expression "(pVtab[2].pModule)" ( (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier) )) -> field_identifier))) + number_literal) ))) ])) ;)) (if_statement "if ((aType_23891[pMVar10->flags & 0x1f] == '\x05') &&\n         (pMVar10 = apVal[1], aType_23891[pMVar10->flags & 0x1f] == '\x05')) {\nLAB_0013c280:\n        piDocid = (sqlite3_int64 *)0x0;\n      }\n      else {\n        if (aType_23891[(*apVal)->flags & 0x1f] == '\x05') {\nLAB_0013bc87:\n          if (sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==\n              '\x05') {\n            rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n            piDocid = (sqlite3_int64 *)0x0;\n          }\n          else {\n            rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n            piDocid = (sqlite3_int64 *)&DAT_00000001;\n          }\n        }\n        else {\n          iVar32 = sqlite3VdbeIntValue(*apVal);\n          piDocid = (sqlite3_int64 *)iVar32;\n          iVar33 = sqlite3VdbeIntValue(pMVar10);\n          if (iVar33 != CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid)) goto LAB_0013bc87;\n          piDocid = (sqlite3_int64 *)0x0;\n        }\n        iVar8 = rc;\n        if (rc != 0) goto LAB_0013bb29;\n      }" if (parenthesized_expression "((aType_23891[pMVar10->flags & 0x1f] == '\x05') &&\n         (pMVar10 = apVal[1], aType_23891[pMVar10->flags & 0x1f] == '\x05'))" ( (binary_expression "(aType_23891[pMVar10->flags & 0x1f] == '\x05') &&\n         (pMVar10 = apVal[1], aType_23891[pMVar10->flags & 0x1f] == '\x05')" (parenthesized_expression "(aType_23891[pMVar10->flags & 0x1f] == '\x05')" ( (binary_expression "aType_23891[pMVar10->flags & 0x1f] == '\x05'" (subscript_expression "aType_23891[pMVar10->flags & 0x1f]" identifier [ (binary_expression "pMVar10->flags & 0x1f" (field_expression "pMVar10->flags" identifier -> field_identifier) & number_literal) ]) == (char_literal "'\x05'" ' escape_sequence ')) )) && (parenthesized_expression "(pMVar10 = apVal[1], aType_23891[pMVar10->flags & 0x1f] == '\x05')" ( (comma_expression "pMVar10 = apVal[1], aType_23891[pMVar10->flags & 0x1f] == '\x05'" (assignment_expression "pMVar10 = apVal[1]" identifier = (subscript_expression "apVal[1]" identifier [ number_literal ])) , (binary_expression "aType_23891[pMVar10->flags & 0x1f] == '\x05'" (subscript_expression "aType_23891[pMVar10->flags & 0x1f]" identifier [ (binary_expression "pMVar10->flags & 0x1f" (field_expression "pMVar10->flags" identifier -> field_identifier) & number_literal) ]) == (char_literal "'\x05'" ' escape_sequence '))) ))) )) (compound_statement "{\nLAB_0013c280:\n        piDocid = (sqlite3_int64 *)0x0;\n      }" { (labeled_statement "LAB_0013c280:\n        piDocid = (sqlite3_int64 *)0x0;" statement_identifier : (expression_statement "piDocid = (sqlite3_int64 *)0x0;" (assignment_expression "piDocid = (sqlite3_int64 *)0x0" identifier = (cast_expression "(sqlite3_int64 *)0x0" ( (type_descriptor "sqlite3_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n        if (aType_23891[(*apVal)->flags & 0x1f] == '\x05') {\nLAB_0013bc87:\n          if (sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==\n              '\x05') {\n            rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n            piDocid = (sqlite3_int64 *)0x0;\n          }\n          else {\n            rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n            piDocid = (sqlite3_int64 *)&DAT_00000001;\n          }\n        }\n        else {\n          iVar32 = sqlite3VdbeIntValue(*apVal);\n          piDocid = (sqlite3_int64 *)iVar32;\n          iVar33 = sqlite3VdbeIntValue(pMVar10);\n          if (iVar33 != CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid)) goto LAB_0013bc87;\n          piDocid = (sqlite3_int64 *)0x0;\n        }\n        iVar8 = rc;\n        if (rc != 0) goto LAB_0013bb29;\n      }" else (compound_statement "{\n        if (aType_23891[(*apVal)->flags & 0x1f] == '\x05') {\nLAB_0013bc87:\n          if (sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==\n              '\x05') {\n            rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n            piDocid = (sqlite3_int64 *)0x0;\n          }\n          else {\n            rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n            piDocid = (sqlite3_int64 *)&DAT_00000001;\n          }\n        }\n        else {\n          iVar32 = sqlite3VdbeIntValue(*apVal);\n          piDocid = (sqlite3_int64 *)iVar32;\n          iVar33 = sqlite3VdbeIntValue(pMVar10);\n          if (iVar33 != CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid)) goto LAB_0013bc87;\n          piDocid = (sqlite3_int64 *)0x0;\n        }\n        iVar8 = rc;\n        if (rc != 0) goto LAB_0013bb29;\n      }" { (if_statement "if (aType_23891[(*apVal)->flags & 0x1f] == '\x05') {\nLAB_0013bc87:\n          if (sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==\n              '\x05') {\n            rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n            piDocid = (sqlite3_int64 *)0x0;\n          }\n          else {\n            rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n            piDocid = (sqlite3_int64 *)&DAT_00000001;\n          }\n        }\n        else {\n          iVar32 = sqlite3VdbeIntValue(*apVal);\n          piDocid = (sqlite3_int64 *)iVar32;\n          iVar33 = sqlite3VdbeIntValue(pMVar10);\n          if (iVar33 != CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid)) goto LAB_0013bc87;\n          piDocid = (sqlite3_int64 *)0x0;\n        }" if (parenthesized_expression "(aType_23891[(*apVal)->flags & 0x1f] == '\x05')" ( (binary_expression "aType_23891[(*apVal)->flags & 0x1f] == '\x05'" (subscript_expression "aType_23891[(*apVal)->flags & 0x1f]" identifier [ (binary_expression "(*apVal)->flags & 0x1f" (field_expression "(*apVal)->flags" (parenthesized_expression "(*apVal)" ( (pointer_expression "*apVal" * identifier) )) -> field_identifier) & number_literal) ]) == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0013bc87:\n          if (sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==\n              '\x05') {\n            rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n            piDocid = (sqlite3_int64 *)0x0;\n          }\n          else {\n            rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n            piDocid = (sqlite3_int64 *)&DAT_00000001;\n          }\n        }" { (labeled_statement "LAB_0013bc87:\n          if (sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==\n              '\x05') {\n            rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n            piDocid = (sqlite3_int64 *)0x0;\n          }\n          else {\n            rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n            piDocid = (sqlite3_int64 *)&DAT_00000001;\n          }" statement_identifier : (if_statement "if (sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==\n              '\x05') {\n            rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n            piDocid = (sqlite3_int64 *)0x0;\n          }\n          else {\n            rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n            piDocid = (sqlite3_int64 *)&DAT_00000001;\n          }" if (parenthesized_expression "(sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==\n              '\x05')" ( (binary_expression "sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==\n              '\x05'" (subscript_expression "sqlite3_complete::trans[7][*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7]" (subscript_expression "sqlite3_complete::trans[7]" identifier (ERROR "::trans" : : identifier) [ number_literal ]) [ (binary_expression "*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7" (pointer_expression "*(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2)" * (cast_expression "(byte *)((int)&(pVtab[1].pModule)->xSavepoint + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pVtab[1].pModule)->xSavepoint + 2)" ( (binary_expression "(int)&(pVtab[1].pModule)->xSavepoint + 2" (cast_expression "(int)&(pVtab[1].pModule)->xSavepoint" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pVtab[1].pModule)->xSavepoint" & (field_expression "(pVtab[1].pModule)->xSavepoint" (parenthesized_expression "(pVtab[1].pModule)" ( (field_expression "pVtab[1].pModule" (subscript_expression "pVtab[1]" identifier [ number_literal ]) . field_identifier) )) -> field_identifier))) + number_literal) )))) + number_literal) ]) == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n            rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);\n            piDocid = (sqlite3_int64 *)0x0;\n          }" { (expression_statement "rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel);" (assignment_expression "rc = fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel)" identifier = (call_expression "fts3DeleteByRowid((Fts3Table *)pVtab,psVar7,piVar35,aSzDel)" identifier (argument_list "((Fts3Table *)pVtab,psVar7,piVar35,aSzDel)" ( (cast_expression "(Fts3Table *)pVtab" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier )))) ;) (expression_statement "piDocid = (sqlite3_int64 *)0x0;" (assignment_expression "piDocid = (sqlite3_int64 *)0x0" identifier = (cast_expression "(sqlite3_int64 *)0x0" ( (type_descriptor "sqlite3_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n            piDocid = (sqlite3_int64 *)&DAT_00000001;\n          }" else (compound_statement "{\n            rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n            piDocid = (sqlite3_int64 *)&DAT_00000001;\n          }" { (expression_statement "rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);" (assignment_expression "rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid)" identifier = (call_expression "fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid)" identifier (argument_list "((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid)" ( (cast_expression "(Fts3Table *)pRowid" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(sqlite3_value **)in_stack_fffffec8" ( (type_descriptor "sqlite3_value **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) , identifier )))) ;) (expression_statement "piDocid = (sqlite3_int64 *)&DAT_00000001;" (assignment_expression "piDocid = (sqlite3_int64 *)&DAT_00000001" identifier = (cast_expression "(sqlite3_int64 *)&DAT_00000001" ( (type_descriptor "sqlite3_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) })))) }) (else_clause "else {\n          iVar32 = sqlite3VdbeIntValue(*apVal);\n          piDocid = (sqlite3_int64 *)iVar32;\n          iVar33 = sqlite3VdbeIntValue(pMVar10);\n          if (iVar33 != CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid)) goto LAB_0013bc87;\n          piDocid = (sqlite3_int64 *)0x0;\n        }" else (compound_statement "{\n          iVar32 = sqlite3VdbeIntValue(*apVal);\n          piDocid = (sqlite3_int64 *)iVar32;\n          iVar33 = sqlite3VdbeIntValue(pMVar10);\n          if (iVar33 != CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid)) goto LAB_0013bc87;\n          piDocid = (sqlite3_int64 *)0x0;\n        }" { (expression_statement "iVar32 = sqlite3VdbeIntValue(*apVal);" (assignment_expression "iVar32 = sqlite3VdbeIntValue(*apVal)" identifier = (call_expression "sqlite3VdbeIntValue(*apVal)" identifier (argument_list "(*apVal)" ( (pointer_expression "*apVal" * identifier) )))) ;) (expression_statement "piDocid = (sqlite3_int64 *)iVar32;" (assignment_expression "piDocid = (sqlite3_int64 *)iVar32" identifier = (cast_expression "(sqlite3_int64 *)iVar32" ( (type_descriptor "sqlite3_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar33 = sqlite3VdbeIntValue(pMVar10);" (assignment_expression "iVar33 = sqlite3VdbeIntValue(pMVar10)" identifier = (call_expression "sqlite3VdbeIntValue(pMVar10)" identifier (argument_list "(pMVar10)" ( identifier )))) ;) (if_statement "if (iVar33 != CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid)) goto LAB_0013bc87;" if (parenthesized_expression "(iVar33 != CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid))" ( (binary_expression "iVar33 != CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid)" identifier != (call_expression "CONCAT44((int)((ulonglong)iVar32 >> 0x20),piDocid)" identifier (argument_list "((int)((ulonglong)iVar32 >> 0x20),piDocid)" ( (cast_expression "(int)((ulonglong)iVar32 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)iVar32 >> 0x20)" ( (binary_expression "(ulonglong)iVar32 >> 0x20" (cast_expression "(ulonglong)iVar32" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier )))) )) (goto_statement "goto LAB_0013bc87;" goto statement_identifier ;)) (expression_statement "piDocid = (sqlite3_int64 *)0x0;" (assignment_expression "piDocid = (sqlite3_int64 *)0x0" identifier = (cast_expression "(sqlite3_int64 *)0x0" ( (type_descriptor "sqlite3_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "iVar8 = rc;" (assignment_expression "iVar8 = rc" identifier = identifier) ;) (if_statement "if (rc != 0) goto LAB_0013bb29;" if (parenthesized_expression "(rc != 0)" ( (binary_expression "rc != 0" identifier != number_literal) )) (goto_statement "goto LAB_0013bb29;" goto statement_identifier ;)) }))) (if_statement "if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;" if (parenthesized_expression "(aType_23891[(*apVal)->flags & 0x1f] != '\x05')" ( (binary_expression "aType_23891[(*apVal)->flags & 0x1f] != '\x05'" (subscript_expression "aType_23891[(*apVal)->flags & 0x1f]" identifier [ (binary_expression "(*apVal)->flags & 0x1f" (field_expression "(*apVal)->flags" (parenthesized_expression "(*apVal)" ( (pointer_expression "*apVal" * identifier) )) -> field_identifier) & number_literal) ]) != (char_literal "'\x05'" ' escape_sequence ')) )) (goto_statement "goto LAB_0013bce0;" goto statement_identifier ;)) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0013bcfe:\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);" statement_identifier : (expression_statement "local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);" (assignment_expression "local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4)" identifier = (cast_expression "(sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4)" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar7->u + (int)psVar38 * 4 + 4)" ( (binary_expression "(int)&psVar7->u + (int)psVar38 * 4 + 4" (binary_expression "(int)&psVar7->u + (int)psVar38 * 4" (cast_expression "(int)&psVar7->u" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar7->u" & (field_expression "psVar7->u" identifier -> field_identifier))) + (binary_expression "(int)psVar38 * 4" (cast_expression "(int)psVar38" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;)) (if_statement "if ((1 < nArg) && (iVar8 == 0)) {\n        iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n        local_124 = (sqlite3_module *)iVar32;\n        if (piDocid == (sqlite3_int64 *)0x0) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }" if (parenthesized_expression "((1 < nArg) && (iVar8 == 0))" ( (binary_expression "(1 < nArg) && (iVar8 == 0)" (parenthesized_expression "(1 < nArg)" ( (binary_expression "1 < nArg" number_literal < identifier) )) && (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) ))) )) (compound_statement "{\n        iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n        local_124 = (sqlite3_module *)iVar32;\n        if (piDocid == (sqlite3_int64 *)0x0) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }" { (expression_statement "iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);" (assignment_expression "iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate])" identifier = (call_expression "sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate])" identifier (argument_list "(apVal[(int)&(pVtab[2].pModule)->xCreate])" ( (subscript_expression "apVal[(int)&(pVtab[2].pModule)->xCreate]" identifier [ (cast_expression "(int)&(pVtab[2].pModule)->xCreate" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pVtab[2].pModule)->xCreate" & (field_expression "(pVtab[2].pModule)->xCreate" (parenthesized_expression "(pVtab[2].pModule)" ( (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier) )) -> field_identifier))) ]) )))) ;) (expression_statement "local_124 = (sqlite3_module *)iVar32;" (assignment_expression "local_124 = (sqlite3_module *)iVar32" identifier = (cast_expression "(sqlite3_module *)iVar32" ( (type_descriptor "sqlite3_module *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (piDocid == (sqlite3_int64 *)0x0) goto LAB_0013b9c2;" if (parenthesized_expression "(piDocid == (sqlite3_int64 *)0x0)" ( (binary_expression "piDocid == (sqlite3_int64 *)0x0" identifier == (cast_expression "(sqlite3_int64 *)0x0" ( (type_descriptor "sqlite3_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013b9c2;" goto statement_identifier ;)) (goto_statement "goto LAB_0013bd4a;" goto statement_identifier ;) })) }) (else_clause "else {\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n      local_124 = (sqlite3_module *)iVar32;\nLAB_0013b9c2:\n      rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n      if (rc == 0x13) {\n        iVar8 = rc;\n        if (pVtab[3].nRef == 0) {\n          rc = 0x10b;\n          iVar8 = rc;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        iVar8 = rc;\n        if (rc == 0) {\n          psVar38 = (((Fts3Table *)pRowid)->base).pModule;\n          pcVar9 = (char *)(((Fts3Table *)pRowid)->base).nRef;\n          pcVar21 = pVtab[0x16].zErrMsg;\n          uVar11 = (uint)(psVar38 < (sqlite3_module *)pVtab[0x16].nRef);\n          if (((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n             (iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0)) {\n            rc = 0;\n            pVtab[0x17].pModule = local_124;\n            psVar18 = pVtab[2].pModule;\n            pVtab[0x16].zErrMsg = pcVar9;\n            pVtab[0x16].nRef = (int)psVar38;\n            pVtab[0x17].nRef = 0;\n            iVar13 = 0;\n            iVar8 = iVar20;\n            if (0 < (int)psVar18) {\n              do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);\n            }\n          }\n        }\n      }\n      rc = iVar8;\n      if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\n        fts3InsertDocsize(&rc,(Fts3Table *)pVtab,(u32 *)local_12c);\n      }\n      nChng = nChng + 1;\n    }" else (compound_statement "{\n      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;\n      local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);\n      iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);\n      local_124 = (sqlite3_module *)iVar32;\nLAB_0013b9c2:\n      rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);\n      if (rc == 0x13) {\n        iVar8 = rc;\n        if (pVtab[3].nRef == 0) {\n          rc = 0x10b;\n          iVar8 = rc;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        iVar8 = rc;\n        if (rc == 0) {\n          psVar38 = (((Fts3Table *)pRowid)->base).pModule;\n          pcVar9 = (char *)(((Fts3Table *)pRowid)->base).nRef;\n          pcVar21 = pVtab[0x16].zErrMsg;\n          uVar11 = (uint)(psVar38 < (sqlite3_module *)pVtab[0x16].nRef);\n          if (((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n             (iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0)) {\n            rc = 0;\n            pVtab[0x17].pModule = local_124;\n            psVar18 = pVtab[2].pModule;\n            pVtab[0x16].zErrMsg = pcVar9;\n            pVtab[0x16].nRef = (int)psVar38;\n            pVtab[0x17].nRef = 0;\n            iVar13 = 0;\n            iVar8 = iVar20;\n            if (0 < (int)psVar18) {\n              do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);\n            }\n          }\n        }\n      }\n      rc = iVar8;\n      if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\n        fts3InsertDocsize(&rc,(Fts3Table *)pVtab,(u32 *)local_12c);\n      }\n      nChng = nChng + 1;\n    }" { (if_statement "if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;" if (parenthesized_expression "(aType_23891[(*apVal)->flags & 0x1f] != '\x05')" ( (binary_expression "aType_23891[(*apVal)->flags & 0x1f] != '\x05'" (subscript_expression "aType_23891[(*apVal)->flags & 0x1f]" identifier [ (binary_expression "(*apVal)->flags & 0x1f" (field_expression "(*apVal)->flags" (parenthesized_expression "(*apVal)" ( (pointer_expression "*apVal" * identifier) )) -> field_identifier) & number_literal) ]) != (char_literal "'\x05'" ' escape_sequence ')) )) (goto_statement "goto LAB_0013bce0;" goto statement_identifier ;)) (expression_statement "local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4);" (assignment_expression "local_12c = (sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4)" identifier = (cast_expression "(sqlite3_stmt *)((int)&psVar7->u + (int)psVar38 * 4 + 4)" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar7->u + (int)psVar38 * 4 + 4)" ( (binary_expression "(int)&psVar7->u + (int)psVar38 * 4 + 4" (binary_expression "(int)&psVar7->u + (int)psVar38 * 4" (cast_expression "(int)&psVar7->u" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar7->u" & (field_expression "psVar7->u" identifier -> field_identifier))) + (binary_expression "(int)psVar38 * 4" (cast_expression "(int)psVar38" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate]);" (assignment_expression "iVar32 = sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate])" identifier = (call_expression "sqlite3VdbeIntValue(apVal[(int)&(pVtab[2].pModule)->xCreate])" identifier (argument_list "(apVal[(int)&(pVtab[2].pModule)->xCreate])" ( (subscript_expression "apVal[(int)&(pVtab[2].pModule)->xCreate]" identifier [ (cast_expression "(int)&(pVtab[2].pModule)->xCreate" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pVtab[2].pModule)->xCreate" & (field_expression "(pVtab[2].pModule)->xCreate" (parenthesized_expression "(pVtab[2].pModule)" ( (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier) )) -> field_identifier))) ]) )))) ;) (expression_statement "local_124 = (sqlite3_module *)iVar32;" (assignment_expression "local_124 = (sqlite3_module *)iVar32" identifier = (cast_expression "(sqlite3_module *)iVar32" ( (type_descriptor "sqlite3_module *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_0013b9c2:\n      rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);" statement_identifier : (expression_statement "rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid);" (assignment_expression "rc = fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid)" identifier = (call_expression "fts3InsertData((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid)" identifier (argument_list "((Fts3Table *)pRowid,(sqlite3_value **)in_stack_fffffec8,piDocid)" ( (cast_expression "(Fts3Table *)pRowid" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(sqlite3_value **)in_stack_fffffec8" ( (type_descriptor "sqlite3_value **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) , identifier )))) ;)) (if_statement "if (rc == 0x13) {\n        iVar8 = rc;\n        if (pVtab[3].nRef == 0) {\n          rc = 0x10b;\n          iVar8 = rc;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        iVar8 = rc;\n        if (rc == 0) {\n          psVar38 = (((Fts3Table *)pRowid)->base).pModule;\n          pcVar9 = (char *)(((Fts3Table *)pRowid)->base).nRef;\n          pcVar21 = pVtab[0x16].zErrMsg;\n          uVar11 = (uint)(psVar38 < (sqlite3_module *)pVtab[0x16].nRef);\n          if (((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n             (iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0)) {\n            rc = 0;\n            pVtab[0x17].pModule = local_124;\n            psVar18 = pVtab[2].pModule;\n            pVtab[0x16].zErrMsg = pcVar9;\n            pVtab[0x16].nRef = (int)psVar38;\n            pVtab[0x17].nRef = 0;\n            iVar13 = 0;\n            iVar8 = iVar20;\n            if (0 < (int)psVar18) {\n              do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(rc == 0x13)" ( (binary_expression "rc == 0x13" identifier == number_literal) )) (compound_statement "{\n        iVar8 = rc;\n        if (pVtab[3].nRef == 0) {\n          rc = 0x10b;\n          iVar8 = rc;\n        }\n      }" { (expression_statement "iVar8 = rc;" (assignment_expression "iVar8 = rc" identifier = identifier) ;) (if_statement "if (pVtab[3].nRef == 0) {\n          rc = 0x10b;\n          iVar8 = rc;\n        }" if (parenthesized_expression "(pVtab[3].nRef == 0)" ( (binary_expression "pVtab[3].nRef == 0" (field_expression "pVtab[3].nRef" (subscript_expression "pVtab[3]" identifier [ number_literal ]) . field_identifier) == number_literal) )) (compound_statement "{\n          rc = 0x10b;\n          iVar8 = rc;\n        }" { (expression_statement "rc = 0x10b;" (assignment_expression "rc = 0x10b" identifier = number_literal) ;) (expression_statement "iVar8 = rc;" (assignment_expression "iVar8 = rc" identifier = identifier) ;) })) }) (else_clause "else {\nLAB_0013bd4a:\n        iVar8 = rc;\n        if (rc == 0) {\n          psVar38 = (((Fts3Table *)pRowid)->base).pModule;\n          pcVar9 = (char *)(((Fts3Table *)pRowid)->base).nRef;\n          pcVar21 = pVtab[0x16].zErrMsg;\n          uVar11 = (uint)(psVar38 < (sqlite3_module *)pVtab[0x16].nRef);\n          if (((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n             (iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0)) {\n            rc = 0;\n            pVtab[0x17].pModule = local_124;\n            psVar18 = pVtab[2].pModule;\n            pVtab[0x16].zErrMsg = pcVar9;\n            pVtab[0x16].nRef = (int)psVar38;\n            pVtab[0x17].nRef = 0;\n            iVar13 = 0;\n            iVar8 = iVar20;\n            if (0 < (int)psVar18) {\n              do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);\n            }\n          }\n        }\n      }" else (compound_statement "{\nLAB_0013bd4a:\n        iVar8 = rc;\n        if (rc == 0) {\n          psVar38 = (((Fts3Table *)pRowid)->base).pModule;\n          pcVar9 = (char *)(((Fts3Table *)pRowid)->base).nRef;\n          pcVar21 = pVtab[0x16].zErrMsg;\n          uVar11 = (uint)(psVar38 < (sqlite3_module *)pVtab[0x16].nRef);\n          if (((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n             (iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0)) {\n            rc = 0;\n            pVtab[0x17].pModule = local_124;\n            psVar18 = pVtab[2].pModule;\n            pVtab[0x16].zErrMsg = pcVar9;\n            pVtab[0x16].nRef = (int)psVar38;\n            pVtab[0x17].nRef = 0;\n            iVar13 = 0;\n            iVar8 = iVar20;\n            if (0 < (int)psVar18) {\n              do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_0013bd4a:\n        iVar8 = rc;" statement_identifier : (expression_statement "iVar8 = rc;" (assignment_expression "iVar8 = rc" identifier = identifier) ;)) (if_statement "if (rc == 0) {\n          psVar38 = (((Fts3Table *)pRowid)->base).pModule;\n          pcVar9 = (char *)(((Fts3Table *)pRowid)->base).nRef;\n          pcVar21 = pVtab[0x16].zErrMsg;\n          uVar11 = (uint)(psVar38 < (sqlite3_module *)pVtab[0x16].nRef);\n          if (((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n             (iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0)) {\n            rc = 0;\n            pVtab[0x17].pModule = local_124;\n            psVar18 = pVtab[2].pModule;\n            pVtab[0x16].zErrMsg = pcVar9;\n            pVtab[0x16].nRef = (int)psVar38;\n            pVtab[0x17].nRef = 0;\n            iVar13 = 0;\n            iVar8 = iVar20;\n            if (0 < (int)psVar18) {\n              do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);\n            }\n          }\n        }" if (parenthesized_expression "(rc == 0)" ( (binary_expression "rc == 0" identifier == number_literal) )) (compound_statement "{\n          psVar38 = (((Fts3Table *)pRowid)->base).pModule;\n          pcVar9 = (char *)(((Fts3Table *)pRowid)->base).nRef;\n          pcVar21 = pVtab[0x16].zErrMsg;\n          uVar11 = (uint)(psVar38 < (sqlite3_module *)pVtab[0x16].nRef);\n          if (((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n             (iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0)) {\n            rc = 0;\n            pVtab[0x17].pModule = local_124;\n            psVar18 = pVtab[2].pModule;\n            pVtab[0x16].zErrMsg = pcVar9;\n            pVtab[0x16].nRef = (int)psVar38;\n            pVtab[0x17].nRef = 0;\n            iVar13 = 0;\n            iVar8 = iVar20;\n            if (0 < (int)psVar18) {\n              do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);\n            }\n          }\n        }" { (expression_statement "psVar38 = (((Fts3Table *)pRowid)->base).pModule;" (assignment_expression "psVar38 = (((Fts3Table *)pRowid)->base).pModule" identifier = (field_expression "(((Fts3Table *)pRowid)->base).pModule" (parenthesized_expression "(((Fts3Table *)pRowid)->base)" ( (field_expression "((Fts3Table *)pRowid)->base" (parenthesized_expression "((Fts3Table *)pRowid)" ( (cast_expression "(Fts3Table *)pRowid" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar9 = (char *)(((Fts3Table *)pRowid)->base).nRef;" (assignment_expression "pcVar9 = (char *)(((Fts3Table *)pRowid)->base).nRef" identifier = (cast_expression "(char *)(((Fts3Table *)pRowid)->base).nRef" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "(((Fts3Table *)pRowid)->base).nRef" (parenthesized_expression "(((Fts3Table *)pRowid)->base)" ( (field_expression "((Fts3Table *)pRowid)->base" (parenthesized_expression "((Fts3Table *)pRowid)" ( (cast_expression "(Fts3Table *)pRowid" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) )) . field_identifier))) ;) (expression_statement "pcVar21 = pVtab[0x16].zErrMsg;" (assignment_expression "pcVar21 = pVtab[0x16].zErrMsg" identifier = (field_expression "pVtab[0x16].zErrMsg" (subscript_expression "pVtab[0x16]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "uVar11 = (uint)(psVar38 < (sqlite3_module *)pVtab[0x16].nRef);" (assignment_expression "uVar11 = (uint)(psVar38 < (sqlite3_module *)pVtab[0x16].nRef)" identifier = (call_expression "(uint)(psVar38 < (sqlite3_module *)pVtab[0x16].nRef)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(psVar38 < (sqlite3_module *)pVtab[0x16].nRef)" ( (binary_expression "psVar38 < (sqlite3_module *)pVtab[0x16].nRef" identifier < (cast_expression "(sqlite3_module *)pVtab[0x16].nRef" ( (type_descriptor "sqlite3_module *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVtab[0x16].nRef" (subscript_expression "pVtab[0x16]" identifier [ number_literal ]) . field_identifier))) )))) ;) (if_statement "if (((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n             (iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0)) {\n            rc = 0;\n            pVtab[0x17].pModule = local_124;\n            psVar18 = pVtab[2].pModule;\n            pVtab[0x16].zErrMsg = pcVar9;\n            pVtab[0x16].nRef = (int)psVar38;\n            pVtab[0x17].nRef = 0;\n            iVar13 = 0;\n            iVar8 = iVar20;\n            if (0 < (int)psVar18) {\n              do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);\n            }\n          }" if (parenthesized_expression "(((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n             (iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0))" ( (binary_expression "((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||\n             (iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0)" (parenthesized_expression "((((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg))" ( (binary_expression "(((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))) &&\n              (iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)" (parenthesized_expression "(((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule))))" ( (binary_expression "((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0) &&\n               (((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))" (parenthesized_expression "((SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0)" ( (binary_expression "(SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))\n                 == (int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0" (parenthesized_expression "(SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11))" ( (binary_expression "SBORROW4((int)pcVar9,(int)pcVar21) != SBORROW4((int)pcVar9 - (int)pcVar21,uVar11)" (call_expression "SBORROW4((int)pcVar9,(int)pcVar21)" identifier (argument_list "((int)pcVar9,(int)pcVar21)" ( (cast_expression "(int)pcVar9" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)pcVar21" ( (type_descriptor "int" primitive_type) ) identifier) ))) != (call_expression "SBORROW4((int)pcVar9 - (int)pcVar21,uVar11)" identifier (argument_list "((int)pcVar9 - (int)pcVar21,uVar11)" ( (binary_expression "(int)pcVar9 - (int)pcVar21" (cast_expression "(int)pcVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar21" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier )))) )) == (binary_expression "(int)(((int)pcVar9 - (int)pcVar21) - uVar11) < 0" (cast_expression "(int)(((int)pcVar9 - (int)pcVar21) - uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((int)pcVar9 - (int)pcVar21) - uVar11)" ( (binary_expression "((int)pcVar9 - (int)pcVar21) - uVar11" (parenthesized_expression "((int)pcVar9 - (int)pcVar21)" ( (binary_expression "(int)pcVar9 - (int)pcVar21" (cast_expression "(int)pcVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) - identifier) ))) < number_literal)) )) && (parenthesized_expression "(((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)))" ( (parenthesized_expression "((pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule))" ( (binary_expression "(pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)) && (local_124 == pVtab[0x17].pModule)" (parenthesized_expression "(pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0))" ( (binary_expression "pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38 ||\n                 (pVtab[0x17].nRef != 0)" (binary_expression "pcVar21 != pcVar9 || (sqlite3_module *)pVtab[0x16].nRef != psVar38" (binary_expression "pcVar21 != pcVar9" identifier != identifier) || (binary_expression "(sqlite3_module *)pVtab[0x16].nRef != psVar38" (cast_expression "(sqlite3_module *)pVtab[0x16].nRef" ( (type_descriptor "sqlite3_module *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVtab[0x16].nRef" (subscript_expression "pVtab[0x16]" identifier [ number_literal ]) . field_identifier)) != identifier)) || (parenthesized_expression "(pVtab[0x17].nRef != 0)" ( (binary_expression "pVtab[0x17].nRef != 0" (field_expression "pVtab[0x17].nRef" (subscript_expression "pVtab[0x17]" identifier [ number_literal ]) . field_identifier) != number_literal) ))) )) && (parenthesized_expression "(local_124 == pVtab[0x17].pModule)" ( (binary_expression "local_124 == pVtab[0x17].pModule" identifier == (field_expression "pVtab[0x17].pModule" (subscript_expression "pVtab[0x17]" identifier [ number_literal ]) . field_identifier)) ))) )) ))) )) && (parenthesized_expression "(iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)" ( (comma_expression "iVar20 = rc, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg" (assignment_expression "iVar20 = rc" identifier = identifier) , (binary_expression "(int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg" (cast_expression "(int)pVtab[0x16].pModule" ( (type_descriptor "int" primitive_type) ) (field_expression "pVtab[0x16].pModule" (subscript_expression "pVtab[0x16]" identifier [ number_literal ]) . field_identifier)) <= (cast_expression "(int)pVtab[0x15].zErrMsg" ( (type_descriptor "int" primitive_type) ) (field_expression "pVtab[0x15].zErrMsg" (subscript_expression "pVtab[0x15]" identifier [ number_literal ]) . field_identifier)))) ))) )) || (parenthesized_expression "(iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0)" ( (comma_expression "iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab), iVar20 = rc, iVar8 == 0" (assignment_expression "iVar8 = sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab)" identifier = (call_expression "sqlite3Fts3PendingTermsFlush((Fts3Table *)pVtab)" identifier (argument_list "((Fts3Table *)pVtab)" ( (cast_expression "(Fts3Table *)pVtab" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (comma_expression "iVar20 = rc, iVar8 == 0" (assignment_expression "iVar20 = rc" identifier = identifier) , (binary_expression "iVar8 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n            rc = 0;\n            pVtab[0x17].pModule = local_124;\n            psVar18 = pVtab[2].pModule;\n            pVtab[0x16].zErrMsg = pcVar9;\n            pVtab[0x16].nRef = (int)psVar38;\n            pVtab[0x17].nRef = 0;\n            iVar13 = 0;\n            iVar8 = iVar20;\n            if (0 < (int)psVar18) {\n              do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);\n            }\n          }" { (expression_statement "rc = 0;" (assignment_expression "rc = 0" identifier = number_literal) ;) (expression_statement "pVtab[0x17].pModule = local_124;" (assignment_expression "pVtab[0x17].pModule = local_124" (field_expression "pVtab[0x17].pModule" (subscript_expression "pVtab[0x17]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "psVar18 = pVtab[2].pModule;" (assignment_expression "psVar18 = pVtab[2].pModule" identifier = (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "pVtab[0x16].zErrMsg = pcVar9;" (assignment_expression "pVtab[0x16].zErrMsg = pcVar9" (field_expression "pVtab[0x16].zErrMsg" (subscript_expression "pVtab[0x16]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "pVtab[0x16].nRef = (int)psVar38;" (assignment_expression "pVtab[0x16].nRef = (int)psVar38" (field_expression "pVtab[0x16].nRef" (subscript_expression "pVtab[0x16]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(int)psVar38" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pVtab[0x17].nRef = 0;" (assignment_expression "pVtab[0x17].nRef = 0" (field_expression "pVtab[0x17].nRef" (subscript_expression "pVtab[0x17]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = iVar20;" (assignment_expression "iVar8 = iVar20" identifier = identifier) ;) (if_statement "if (0 < (int)psVar18) {\n              do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);\n            }" if (parenthesized_expression "(0 < (int)psVar18)" ( (binary_expression "0 < (int)psVar18" number_literal < (cast_expression "(int)psVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);\n            }" { (do_statement "do {\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              } while (iVar24 <= (int)psVar18);" do (compound_statement "{\n                if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }\n                iVar24 = iVar13 + 2;\n                iVar13 = iVar13 + 1;\n                iVar8 = iVar20;\n              }" { (if_statement "if (pVtab[2].zErrMsg[iVar13] == '\0') {\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }" if (parenthesized_expression "(pVtab[2].zErrMsg[iVar13] == '\0')" ( (binary_expression "pVtab[2].zErrMsg[iVar13] == '\0'" (subscript_expression "pVtab[2].zErrMsg[iVar13]" (field_expression "pVtab[2].zErrMsg" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier) [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);\n                  iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));\n                  if (iVar8 != 0) break;\n                  iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);\n                  *(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;\n                  psVar18 = pVtab[2].pModule;\n                }" { (expression_statement "pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18);" (assignment_expression "pcVar9 = (char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18)" identifier = (cast_expression "(char *)sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3ValueText(apVal[iVar13 + 2],(u8)psVar18)" identifier (argument_list "(apVal[iVar13 + 2],(u8)psVar18)" ( (subscript_expression "apVal[iVar13 + 2]" identifier [ (binary_expression "iVar13 + 2" identifier + number_literal) ]) , (cast_expression "(u8)psVar18" ( (type_descriptor "u8" type_identifier) ) identifier) ))))) ;) (expression_statement "iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4));" (assignment_expression "iVar8 = fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4))" identifier = (call_expression "fts3PendingTermsAdd((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4))" identifier (argument_list "((Fts3Table *)pVtab,(int)local_124,pcVar9,iVar13,\n                                              (u32 *)((int)local_12c + iVar13 * 4))" ( (cast_expression "(Fts3Table *)pVtab" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)local_124" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier , (cast_expression "(u32 *)((int)local_12c + iVar13 * 4)" ( (type_descriptor "u32 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_12c + iVar13 * 4)" ( (binary_expression "(int)local_12c + iVar13 * 4" (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar13 * 4" identifier * number_literal)) ))) )))) ;) (if_statement "if (iVar8 != 0) break;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00);" (assignment_expression "iVar8 = sqlite3ValueBytes(apVal[iVar13 + 2],enc_00)" identifier = (call_expression "sqlite3ValueBytes(apVal[iVar13 + 2],enc_00)" identifier (argument_list "(apVal[iVar13 + 2],enc_00)" ( (subscript_expression "apVal[iVar13 + 2]" identifier [ (binary_expression "iVar13 + 2" identifier + number_literal) ]) , identifier )))) ;) (expression_statement "*(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8;" (assignment_expression "*(u32 *)((int)local_12c + pVtab[2].pModule * 4) =\n                       *(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8" (pointer_expression "*(u32 *)((int)local_12c + pVtab[2].pModule * 4)" * (cast_expression "(u32 *)((int)local_12c + pVtab[2].pModule * 4)" ( (type_descriptor "u32 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_12c + pVtab[2].pModule * 4)" ( (binary_expression "(int)local_12c + pVtab[2].pModule * 4" (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "pVtab[2].pModule * 4" (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier) * number_literal)) )))) = (binary_expression "*(u32 *)((int)local_12c + pVtab[2].pModule * 4) + iVar8" (pointer_expression "*(u32 *)((int)local_12c + pVtab[2].pModule * 4)" * (cast_expression "(u32 *)((int)local_12c + pVtab[2].pModule * 4)" ( (type_descriptor "u32 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_12c + pVtab[2].pModule * 4)" ( (binary_expression "(int)local_12c + pVtab[2].pModule * 4" (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "pVtab[2].pModule * 4" (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier) * number_literal)) )))) + identifier)) ;) (expression_statement "psVar18 = pVtab[2].pModule;" (assignment_expression "psVar18 = pVtab[2].pModule" identifier = (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier)) ;) })) (expression_statement "iVar24 = iVar13 + 2;" (assignment_expression "iVar24 = iVar13 + 2" identifier = (binary_expression "iVar13 + 2" identifier + number_literal)) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = iVar20;" (assignment_expression "iVar8 = iVar20" identifier = identifier) ;) }) while (parenthesized_expression "(iVar24 <= (int)psVar18)" ( (binary_expression "iVar24 <= (int)psVar18" identifier <= (cast_expression "(int)psVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) })) })) }))) (expression_statement "rc = iVar8;" (assignment_expression "rc = iVar8" identifier = identifier) ;) (if_statement "if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {\n        fts3InsertDocsize(&rc,(Fts3Table *)pVtab,(u32 *)local_12c);\n      }" if (parenthesized_expression "(*(char *)((int)&pVtab[0x13].nRef + 2) != '\0')" ( (binary_expression "*(char *)((int)&pVtab[0x13].nRef + 2) != '\0'" (pointer_expression "*(char *)((int)&pVtab[0x13].nRef + 2)" * (cast_expression "(char *)((int)&pVtab[0x13].nRef + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pVtab[0x13].nRef + 2)" ( (binary_expression "(int)&pVtab[0x13].nRef + 2" (cast_expression "(int)&pVtab[0x13].nRef" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pVtab[0x13].nRef" & (field_expression "pVtab[0x13].nRef" (subscript_expression "pVtab[0x13]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        fts3InsertDocsize(&rc,(Fts3Table *)pVtab,(u32 *)local_12c);\n      }" { (expression_statement "fts3InsertDocsize(&rc,(Fts3Table *)pVtab,(u32 *)local_12c);" (call_expression "fts3InsertDocsize(&rc,(Fts3Table *)pVtab,(u32 *)local_12c)" identifier (argument_list "(&rc,(Fts3Table *)pVtab,(u32 *)local_12c)" ( (pointer_expression "&rc" & identifier) , (cast_expression "(Fts3Table *)pVtab" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(u32 *)local_12c" ( (type_descriptor "u32 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) (expression_statement "nChng = nChng + 1;" (assignment_expression "nChng = nChng + 1" identifier = (binary_expression "nChng + 1" identifier + number_literal)) ;) }))))) (expression_statement "iVar8 = rc;" (assignment_expression "iVar8 = rc" identifier = identifier) ;) (if_statement "if ((char)pVtab[0x13].nRef != '\0') {\n      fts3UpdateDocTotals(&rc,(Fts3Table *)pVtab,(u32 *)local_12c,(u32 *)psVar7,nChng);\n      iVar8 = rc;\n    }" if (parenthesized_expression "((char)pVtab[0x13].nRef != '\0')" ( (binary_expression "(char)pVtab[0x13].nRef != '\0'" (cast_expression "(char)pVtab[0x13].nRef" ( (type_descriptor "char" primitive_type) ) (field_expression "pVtab[0x13].nRef" (subscript_expression "pVtab[0x13]" identifier [ number_literal ]) . field_identifier)) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      fts3UpdateDocTotals(&rc,(Fts3Table *)pVtab,(u32 *)local_12c,(u32 *)psVar7,nChng);\n      iVar8 = rc;\n    }" { (expression_statement "fts3UpdateDocTotals(&rc,(Fts3Table *)pVtab,(u32 *)local_12c,(u32 *)psVar7,nChng);" (call_expression "fts3UpdateDocTotals(&rc,(Fts3Table *)pVtab,(u32 *)local_12c,(u32 *)psVar7,nChng)" identifier (argument_list "(&rc,(Fts3Table *)pVtab,(u32 *)local_12c,(u32 *)psVar7,nChng)" ( (pointer_expression "&rc" & identifier) , (cast_expression "(Fts3Table *)pVtab" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(u32 *)local_12c" ( (type_descriptor "u32 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(u32 *)psVar7" ( (type_descriptor "u32 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "iVar8 = rc;" (assignment_expression "iVar8 = rc" identifier = identifier) ;) })) }))) (labeled_statement "LAB_0013bb29:\n  rc = iVar8;" statement_identifier : (expression_statement "rc = iVar8;" (assignment_expression "rc = iVar8" identifier = identifier) ;)) (if_statement "if (sqlite3Config.bMemstat == 0) {\n    (*sqlite3Config.m.xFree)(psVar7);\n    pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n  }\n  else {\n    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n    }\n    iVar8 = (*sqlite3Config.m.xSize)(psVar7);\n    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar8;\n    (*sqlite3Config.m.xFree)(psVar7);\n    if (mem0.mutex == (sqlite3_mutex *)0x0) {\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    }\n    else {\n      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    }\n  }" if (parenthesized_expression "(sqlite3Config.bMemstat == 0)" ( (binary_expression "sqlite3Config.bMemstat == 0" (field_expression "sqlite3Config.bMemstat" identifier . field_identifier) == number_literal) )) (compound_statement "{\n    (*sqlite3Config.m.xFree)(psVar7);\n    pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n  }" { (expression_statement "(*sqlite3Config.m.xFree)(psVar7);" (call_expression "(*sqlite3Config.m.xFree)(psVar7)" (parenthesized_expression "(*sqlite3Config.m.xFree)" ( (pointer_expression "*sqlite3Config.m.xFree" * (field_expression "sqlite3Config.m.xFree" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(psVar7)" ( identifier ))) ;) (expression_statement "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;" (assignment_expression "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg" identifier = (cast_expression "(sqlite3_blob *)pVtab[0x14].zErrMsg" ( (type_descriptor "sqlite3_blob *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVtab[0x14].zErrMsg" (subscript_expression "pVtab[0x14]" identifier [ number_literal ]) . field_identifier))) ;) }) (else_clause "else {\n    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n    }\n    iVar8 = (*sqlite3Config.m.xSize)(psVar7);\n    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar8;\n    (*sqlite3Config.m.xFree)(psVar7);\n    if (mem0.mutex == (sqlite3_mutex *)0x0) {\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    }\n    else {\n      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    }\n  }" else (compound_statement "{\n    if (mem0.mutex != (sqlite3_mutex *)0x0) {\n      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n    }\n    iVar8 = (*sqlite3Config.m.xSize)(psVar7);\n    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;\n    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar8;\n    (*sqlite3Config.m.xFree)(psVar7);\n    if (mem0.mutex == (sqlite3_mutex *)0x0) {\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    }\n    else {\n      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    }\n  }" { (if_statement "if (mem0.mutex != (sqlite3_mutex *)0x0) {\n      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n    }" if (parenthesized_expression "(mem0.mutex != (sqlite3_mutex *)0x0)" ( (binary_expression "mem0.mutex != (sqlite3_mutex *)0x0" (field_expression "mem0.mutex" identifier . field_identifier) != (cast_expression "(sqlite3_mutex *)0x0" ( (type_descriptor "sqlite3_mutex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);\n    }" { (expression_statement "(*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);" (call_expression "(*sqlite3Config.mutex.xMutexEnter)(mem0.mutex)" (parenthesized_expression "(*sqlite3Config.mutex.xMutexEnter)" ( (pointer_expression "*sqlite3Config.mutex.xMutexEnter" * (field_expression "sqlite3Config.mutex.xMutexEnter" (field_expression "sqlite3Config.mutex" identifier . field_identifier) . field_identifier)) )) (argument_list "(mem0.mutex)" ( (field_expression "mem0.mutex" identifier . field_identifier) ))) ;) })) (expression_statement "iVar8 = (*sqlite3Config.m.xSize)(psVar7);" (assignment_expression "iVar8 = (*sqlite3Config.m.xSize)(psVar7)" identifier = (call_expression "(*sqlite3Config.m.xSize)(psVar7)" (parenthesized_expression "(*sqlite3Config.m.xSize)" ( (pointer_expression "*sqlite3Config.m.xSize" * (field_expression "sqlite3Config.m.xSize" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(psVar7)" ( identifier )))) ;) (expression_statement "sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;" (assignment_expression "sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1" (subscript_expression "sqlite3Stat.nowValue[9]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) = (binary_expression "sqlite3Stat.nowValue[9] - 1" (subscript_expression "sqlite3Stat.nowValue[9]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) - number_literal)) ;) (expression_statement "sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar8;" (assignment_expression "sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - iVar8" (subscript_expression "sqlite3Stat.nowValue[0]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) = (binary_expression "sqlite3Stat.nowValue[0] - iVar8" (subscript_expression "sqlite3Stat.nowValue[0]" (field_expression "sqlite3Stat.nowValue" identifier . field_identifier) [ number_literal ]) - identifier)) ;) (expression_statement "(*sqlite3Config.m.xFree)(psVar7);" (call_expression "(*sqlite3Config.m.xFree)(psVar7)" (parenthesized_expression "(*sqlite3Config.m.xFree)" ( (pointer_expression "*sqlite3Config.m.xFree" * (field_expression "sqlite3Config.m.xFree" (field_expression "sqlite3Config.m" identifier . field_identifier) . field_identifier)) )) (argument_list "(psVar7)" ( identifier ))) ;) (if_statement "if (mem0.mutex == (sqlite3_mutex *)0x0) {\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    }\n    else {\n      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    }" if (parenthesized_expression "(mem0.mutex == (sqlite3_mutex *)0x0)" ( (binary_expression "mem0.mutex == (sqlite3_mutex *)0x0" (field_expression "mem0.mutex" identifier . field_identifier) == (cast_expression "(sqlite3_mutex *)0x0" ( (type_descriptor "sqlite3_mutex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    }" { (expression_statement "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;" (assignment_expression "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg" identifier = (cast_expression "(sqlite3_blob *)pVtab[0x14].zErrMsg" ( (type_descriptor "sqlite3_blob *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVtab[0x14].zErrMsg" (subscript_expression "pVtab[0x14]" identifier [ number_literal ]) . field_identifier))) ;) }) (else_clause "else {\n      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    }" else (compound_statement "{\n      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);\n      pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;\n    }" { (expression_statement "(*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);" (call_expression "(*sqlite3Config.mutex.xMutexLeave)(mem0.mutex)" (parenthesized_expression "(*sqlite3Config.mutex.xMutexLeave)" ( (pointer_expression "*sqlite3Config.mutex.xMutexLeave" * (field_expression "sqlite3Config.mutex.xMutexLeave" (field_expression "sqlite3Config.mutex" identifier . field_identifier) . field_identifier)) )) (argument_list "(mem0.mutex)" ( (field_expression "mem0.mutex" identifier . field_identifier) ))) ;) (expression_statement "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;" (assignment_expression "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg" identifier = (cast_expression "(sqlite3_blob *)pVtab[0x14].zErrMsg" ( (type_descriptor "sqlite3_blob *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVtab[0x14].zErrMsg" (subscript_expression "pVtab[0x14]" identifier [ number_literal ]) . field_identifier))) ;) }))) }))) (goto_statement "goto LAB_0013ba95;" goto statement_identifier ;) (labeled_statement "LAB_0013d4fe:\n  sqlite3_finalize(pStmt_3);" statement_identifier : (expression_statement "sqlite3_finalize(pStmt_3);" (call_expression "sqlite3_finalize(pStmt_3)" identifier (argument_list "(pStmt_3)" ( identifier ))) ;)) (expression_statement "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;" (assignment_expression "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg" identifier = (cast_expression "(sqlite3_blob *)pVtab[0x14].zErrMsg" ( (type_descriptor "sqlite3_blob *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVtab[0x14].zErrMsg" (subscript_expression "pVtab[0x14]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "local_f0 = psVar19;" (assignment_expression "local_f0 = psVar19" identifier = identifier) ;) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) (labeled_statement "LAB_0013d234:\n  iVar20 = sqlite3_step(psVar26);" statement_identifier : (expression_statement "iVar20 = sqlite3_step(psVar26);" (assignment_expression "iVar20 = sqlite3_step(psVar26)" identifier = (call_expression "sqlite3_step(psVar26)" identifier (argument_list "(psVar26)" ( identifier )))) ;)) (expression_statement "psVar19 = pStmt_3;" (assignment_expression "psVar19 = pStmt_3" identifier = identifier) ;) (if_statement "if (iVar20 == 100) {\n    pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n    iVar32 = sqlite3VdbeIntValue(pMVar10);\n    columnMallocFailure(psVar19);\n    psVar19 = pStmt_3;\n    psVar38 = pVtab[2].pModule;\n    if (pVtab[3].zErrMsg == (char *)0x0) {\n      local_b0 = (sqlite3 *)0x0;\n      in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n    }\n    else {\n      pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n      iVar33 = sqlite3VdbeIntValue(pMVar10);\n      local_b0 = (sqlite3 *)iVar33;\n      columnMallocFailure(psVar19);\n      in_stack_fffffec8 = (Fts3MultiSegReader *)((int)local_b0 >> 0x1f);\n      psVar38 = pVtab[2].pModule;\n    }\n    lVar4 = iVar32 * 9 + CONCAT44(in_stack_fffffec8,local_b0);\n    uVar14 = (uint)lVar4;\n    iVar20 = (int)((ulonglong)lVar4 >> 0x20);\n    uVar11 = uVar14 * 9;\n    iVar20 = iVar20 + (iVar20 * 8 | uVar14 >> 0x1d) + (uint)CARRY4(uVar14,uVar14 * 8);\n    psVar26 = pStmt_3;\n    pRowid = (sqlite_int64 *)local_b0;\n    if (0 < (int)psVar38) {\n      local_114 = (sqlite3_stmt *)0x0;\n      pcVar9 = pVtab[2].zErrMsg;\n      do {\n        local_10c = (int)local_114 + 1;\n        if (pcVar9[(int)local_114] == '\0') {\n          uVar27 = (uint)((ulonglong)uVar11 * 9);\n          local_dc = uVar27 + (int)local_114;\n          local_d8 = (int)((ulonglong)uVar11 * 9 >> 0x20) + iVar20 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar27,(uint)local_114);\n          local_e4 = (int)local_114 + uVar14 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar20 * 8 | uVar11 >> 0x1d) + iVar20 + (uint)CARRY4(uVar14 * 0x48,uVar11) +\n                     (uint)CARRY4((uint)local_114,uVar14 * 0x51);\n          while( true ) {\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_03);\n            columnMallocFailure(psVar26);\n            psVar19 = pStmt_3;\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            iVar13 = sqlite3ValueBytes(pMVar10,enc_04);\n            columnMallocFailure(psVar19);\n            pT = (sqlite3_tokenizer_cursor *)0x0;\n            psVar19 = (sqlite3_stmt *)\n                      sqlite3Fts3OpenTokenizer\n                                ((sqlite3_tokenizer *)pVtab[3].pModule,(int)local_b0,pcVar9,iVar13,\n                                 &pT);\n            if (psVar19 == (sqlite3_stmt *)0x0) {\n              while( true ) {\n                iCol._0_4_ = 0;\n                iVal._0_4_ = 0;\n                rc_2 = 0;\n                pStmt = (sqlite3_stmt *)0x0;\n                psVar19 = (sqlite3_stmt *)\n                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt);\n                if (psVar19 != (sqlite3_stmt *)0x0) break;\n                psVar19 = pStmt + local_e4 + local_e4 * 8;\n                uVar27 = ((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8);\n                if (0 < (int)(uint)iCol) {\n                  pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));\n                  psVar23 = (sqlite3 *)iDocid;\n                  do {\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  } while ((sqlite3 *)pRowid != psVar23);\n                }\n                local_ec = local_ec ^ (uint)psVar19;\n                local_e8 = local_e8 ^ uVar27;\n                if (1 < (int)pVtab[0x15].pModule) {\n                  pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);\n                  local_12c = pStmt + local_dc + local_dc * 8;\n                  local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);\n                  do {\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid);\n                }\n              }\n            }\n            if (pT != (sqlite3_tokenizer_cursor *)0x0) {\n              (**(code **)(iVar8 + 0x10))(pT);\n            }\n            if (psVar19 != (sqlite3_stmt *)0x65) goto LAB_0013d4fe;\n            psVar38 = pVtab[2].pModule;\n            psVar26 = pStmt_3;\n            if ((int)psVar38 <= (int)local_10c) goto LAB_0013d234;\n            bVar30 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar30;\n            pcVar9 = pVtab[2].zErrMsg;\n            uVar27 = local_10c;\n            bVar30 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar30;\n            if (pcVar9[local_10c] != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = (sqlite3_stmt *)uVar27;\n          }\n          local_10c = (int)local_114 + 2;\n        }\n        local_114 = (sqlite3_stmt *)local_10c;\n      } while ((int)local_114 < (int)psVar38);\n    }\n    goto LAB_0013d234;\n  }" if (parenthesized_expression "(iVar20 == 100)" ( (binary_expression "iVar20 == 100" identifier == number_literal) )) (compound_statement "{\n    pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n    iVar32 = sqlite3VdbeIntValue(pMVar10);\n    columnMallocFailure(psVar19);\n    psVar19 = pStmt_3;\n    psVar38 = pVtab[2].pModule;\n    if (pVtab[3].zErrMsg == (char *)0x0) {\n      local_b0 = (sqlite3 *)0x0;\n      in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n    }\n    else {\n      pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n      iVar33 = sqlite3VdbeIntValue(pMVar10);\n      local_b0 = (sqlite3 *)iVar33;\n      columnMallocFailure(psVar19);\n      in_stack_fffffec8 = (Fts3MultiSegReader *)((int)local_b0 >> 0x1f);\n      psVar38 = pVtab[2].pModule;\n    }\n    lVar4 = iVar32 * 9 + CONCAT44(in_stack_fffffec8,local_b0);\n    uVar14 = (uint)lVar4;\n    iVar20 = (int)((ulonglong)lVar4 >> 0x20);\n    uVar11 = uVar14 * 9;\n    iVar20 = iVar20 + (iVar20 * 8 | uVar14 >> 0x1d) + (uint)CARRY4(uVar14,uVar14 * 8);\n    psVar26 = pStmt_3;\n    pRowid = (sqlite_int64 *)local_b0;\n    if (0 < (int)psVar38) {\n      local_114 = (sqlite3_stmt *)0x0;\n      pcVar9 = pVtab[2].zErrMsg;\n      do {\n        local_10c = (int)local_114 + 1;\n        if (pcVar9[(int)local_114] == '\0') {\n          uVar27 = (uint)((ulonglong)uVar11 * 9);\n          local_dc = uVar27 + (int)local_114;\n          local_d8 = (int)((ulonglong)uVar11 * 9 >> 0x20) + iVar20 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar27,(uint)local_114);\n          local_e4 = (int)local_114 + uVar14 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar20 * 8 | uVar11 >> 0x1d) + iVar20 + (uint)CARRY4(uVar14 * 0x48,uVar11) +\n                     (uint)CARRY4((uint)local_114,uVar14 * 0x51);\n          while( true ) {\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_03);\n            columnMallocFailure(psVar26);\n            psVar19 = pStmt_3;\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            iVar13 = sqlite3ValueBytes(pMVar10,enc_04);\n            columnMallocFailure(psVar19);\n            pT = (sqlite3_tokenizer_cursor *)0x0;\n            psVar19 = (sqlite3_stmt *)\n                      sqlite3Fts3OpenTokenizer\n                                ((sqlite3_tokenizer *)pVtab[3].pModule,(int)local_b0,pcVar9,iVar13,\n                                 &pT);\n            if (psVar19 == (sqlite3_stmt *)0x0) {\n              while( true ) {\n                iCol._0_4_ = 0;\n                iVal._0_4_ = 0;\n                rc_2 = 0;\n                pStmt = (sqlite3_stmt *)0x0;\n                psVar19 = (sqlite3_stmt *)\n                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt);\n                if (psVar19 != (sqlite3_stmt *)0x0) break;\n                psVar19 = pStmt + local_e4 + local_e4 * 8;\n                uVar27 = ((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8);\n                if (0 < (int)(uint)iCol) {\n                  pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));\n                  psVar23 = (sqlite3 *)iDocid;\n                  do {\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  } while ((sqlite3 *)pRowid != psVar23);\n                }\n                local_ec = local_ec ^ (uint)psVar19;\n                local_e8 = local_e8 ^ uVar27;\n                if (1 < (int)pVtab[0x15].pModule) {\n                  pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);\n                  local_12c = pStmt + local_dc + local_dc * 8;\n                  local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);\n                  do {\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid);\n                }\n              }\n            }\n            if (pT != (sqlite3_tokenizer_cursor *)0x0) {\n              (**(code **)(iVar8 + 0x10))(pT);\n            }\n            if (psVar19 != (sqlite3_stmt *)0x65) goto LAB_0013d4fe;\n            psVar38 = pVtab[2].pModule;\n            psVar26 = pStmt_3;\n            if ((int)psVar38 <= (int)local_10c) goto LAB_0013d234;\n            bVar30 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar30;\n            pcVar9 = pVtab[2].zErrMsg;\n            uVar27 = local_10c;\n            bVar30 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar30;\n            if (pcVar9[local_10c] != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = (sqlite3_stmt *)uVar27;\n          }\n          local_10c = (int)local_114 + 2;\n        }\n        local_114 = (sqlite3_stmt *)local_10c;\n      } while ((int)local_114 < (int)psVar38);\n    }\n    goto LAB_0013d234;\n  }" { (expression_statement "pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);" (assignment_expression "pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8)" identifier = (call_expression "columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8)" identifier (argument_list "((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8)" ( (cast_expression "(sqlite3_stmt *)pRowid" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)in_stack_fffffec8" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "iVar32 = sqlite3VdbeIntValue(pMVar10);" (assignment_expression "iVar32 = sqlite3VdbeIntValue(pMVar10)" identifier = (call_expression "sqlite3VdbeIntValue(pMVar10)" identifier (argument_list "(pMVar10)" ( identifier )))) ;) (expression_statement "columnMallocFailure(psVar19);" (call_expression "columnMallocFailure(psVar19)" identifier (argument_list "(psVar19)" ( identifier ))) ;) (expression_statement "psVar19 = pStmt_3;" (assignment_expression "psVar19 = pStmt_3" identifier = identifier) ;) (expression_statement "psVar38 = pVtab[2].pModule;" (assignment_expression "psVar38 = pVtab[2].pModule" identifier = (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (pVtab[3].zErrMsg == (char *)0x0) {\n      local_b0 = (sqlite3 *)0x0;\n      in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n    }\n    else {\n      pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n      iVar33 = sqlite3VdbeIntValue(pMVar10);\n      local_b0 = (sqlite3 *)iVar33;\n      columnMallocFailure(psVar19);\n      in_stack_fffffec8 = (Fts3MultiSegReader *)((int)local_b0 >> 0x1f);\n      psVar38 = pVtab[2].pModule;\n    }" if (parenthesized_expression "(pVtab[3].zErrMsg == (char *)0x0)" ( (binary_expression "pVtab[3].zErrMsg == (char *)0x0" (field_expression "pVtab[3].zErrMsg" (subscript_expression "pVtab[3]" identifier [ number_literal ]) . field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_b0 = (sqlite3 *)0x0;\n      in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;\n    }" { (expression_statement "local_b0 = (sqlite3 *)0x0;" (assignment_expression "local_b0 = (sqlite3 *)0x0" identifier = (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "in_stack_fffffec8 = (Fts3MultiSegReader *)0x0;" (assignment_expression "in_stack_fffffec8 = (Fts3MultiSegReader *)0x0" identifier = (cast_expression "(Fts3MultiSegReader *)0x0" ( (type_descriptor "Fts3MultiSegReader *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n      iVar33 = sqlite3VdbeIntValue(pMVar10);\n      local_b0 = (sqlite3 *)iVar33;\n      columnMallocFailure(psVar19);\n      in_stack_fffffec8 = (Fts3MultiSegReader *)((int)local_b0 >> 0x1f);\n      psVar38 = pVtab[2].pModule;\n    }" else (compound_statement "{\n      pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n      iVar33 = sqlite3VdbeIntValue(pMVar10);\n      local_b0 = (sqlite3 *)iVar33;\n      columnMallocFailure(psVar19);\n      in_stack_fffffec8 = (Fts3MultiSegReader *)((int)local_b0 >> 0x1f);\n      psVar38 = pVtab[2].pModule;\n    }" { (expression_statement "pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);" (assignment_expression "pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8)" identifier = (call_expression "columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8)" identifier (argument_list "((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8)" ( (cast_expression "(sqlite3_stmt *)pRowid" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)in_stack_fffffec8" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "iVar33 = sqlite3VdbeIntValue(pMVar10);" (assignment_expression "iVar33 = sqlite3VdbeIntValue(pMVar10)" identifier = (call_expression "sqlite3VdbeIntValue(pMVar10)" identifier (argument_list "(pMVar10)" ( identifier )))) ;) (expression_statement "local_b0 = (sqlite3 *)iVar33;" (assignment_expression "local_b0 = (sqlite3 *)iVar33" identifier = (cast_expression "(sqlite3 *)iVar33" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "columnMallocFailure(psVar19);" (call_expression "columnMallocFailure(psVar19)" identifier (argument_list "(psVar19)" ( identifier ))) ;) (expression_statement "in_stack_fffffec8 = (Fts3MultiSegReader *)((int)local_b0 >> 0x1f);" (assignment_expression "in_stack_fffffec8 = (Fts3MultiSegReader *)((int)local_b0 >> 0x1f)" identifier = (cast_expression "(Fts3MultiSegReader *)((int)local_b0 >> 0x1f)" ( (type_descriptor "Fts3MultiSegReader *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b0 >> 0x1f)" ( (binary_expression "(int)local_b0 >> 0x1f" (cast_expression "(int)local_b0" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "psVar38 = pVtab[2].pModule;" (assignment_expression "psVar38 = pVtab[2].pModule" identifier = (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier)) ;) }))) (expression_statement "lVar4 = iVar32 * 9 + CONCAT44(in_stack_fffffec8,local_b0);" (assignment_expression "lVar4 = iVar32 * 9 + CONCAT44(in_stack_fffffec8,local_b0)" identifier = (binary_expression "iVar32 * 9 + CONCAT44(in_stack_fffffec8,local_b0)" (binary_expression "iVar32 * 9" identifier * number_literal) + (call_expression "CONCAT44(in_stack_fffffec8,local_b0)" identifier (argument_list "(in_stack_fffffec8,local_b0)" ( identifier , identifier ))))) ;) (expression_statement "uVar14 = (uint)lVar4;" (assignment_expression "uVar14 = (uint)lVar4" identifier = (cast_expression "(uint)lVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar20 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iVar20 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar11 = uVar14 * 9;" (assignment_expression "uVar11 = uVar14 * 9" identifier = (binary_expression "uVar14 * 9" identifier * number_literal)) ;) (expression_statement "iVar20 = iVar20 + (iVar20 * 8 | uVar14 >> 0x1d) + (uint)CARRY4(uVar14,uVar14 * 8);" (assignment_expression "iVar20 = iVar20 + (iVar20 * 8 | uVar14 >> 0x1d) + (uint)CARRY4(uVar14,uVar14 * 8)" identifier = (binary_expression "iVar20 + (iVar20 * 8 | uVar14 >> 0x1d) + (uint)CARRY4(uVar14,uVar14 * 8)" (binary_expression "iVar20 + (iVar20 * 8 | uVar14 >> 0x1d)" identifier + (parenthesized_expression "(iVar20 * 8 | uVar14 >> 0x1d)" ( (binary_expression "iVar20 * 8 | uVar14 >> 0x1d" (binary_expression "iVar20 * 8" identifier * number_literal) | (binary_expression "uVar14 >> 0x1d" identifier >> number_literal)) ))) + (cast_expression "(uint)CARRY4(uVar14,uVar14 * 8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar14,uVar14 * 8)" identifier (argument_list "(uVar14,uVar14 * 8)" ( identifier , (binary_expression "uVar14 * 8" identifier * number_literal) )))))) ;) (expression_statement "psVar26 = pStmt_3;" (assignment_expression "psVar26 = pStmt_3" identifier = identifier) ;) (expression_statement "pRowid = (sqlite_int64 *)local_b0;" (assignment_expression "pRowid = (sqlite_int64 *)local_b0" identifier = (cast_expression "(sqlite_int64 *)local_b0" ( (type_descriptor "sqlite_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (0 < (int)psVar38) {\n      local_114 = (sqlite3_stmt *)0x0;\n      pcVar9 = pVtab[2].zErrMsg;\n      do {\n        local_10c = (int)local_114 + 1;\n        if (pcVar9[(int)local_114] == '\0') {\n          uVar27 = (uint)((ulonglong)uVar11 * 9);\n          local_dc = uVar27 + (int)local_114;\n          local_d8 = (int)((ulonglong)uVar11 * 9 >> 0x20) + iVar20 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar27,(uint)local_114);\n          local_e4 = (int)local_114 + uVar14 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar20 * 8 | uVar11 >> 0x1d) + iVar20 + (uint)CARRY4(uVar14 * 0x48,uVar11) +\n                     (uint)CARRY4((uint)local_114,uVar14 * 0x51);\n          while( true ) {\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_03);\n            columnMallocFailure(psVar26);\n            psVar19 = pStmt_3;\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            iVar13 = sqlite3ValueBytes(pMVar10,enc_04);\n            columnMallocFailure(psVar19);\n            pT = (sqlite3_tokenizer_cursor *)0x0;\n            psVar19 = (sqlite3_stmt *)\n                      sqlite3Fts3OpenTokenizer\n                                ((sqlite3_tokenizer *)pVtab[3].pModule,(int)local_b0,pcVar9,iVar13,\n                                 &pT);\n            if (psVar19 == (sqlite3_stmt *)0x0) {\n              while( true ) {\n                iCol._0_4_ = 0;\n                iVal._0_4_ = 0;\n                rc_2 = 0;\n                pStmt = (sqlite3_stmt *)0x0;\n                psVar19 = (sqlite3_stmt *)\n                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt);\n                if (psVar19 != (sqlite3_stmt *)0x0) break;\n                psVar19 = pStmt + local_e4 + local_e4 * 8;\n                uVar27 = ((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8);\n                if (0 < (int)(uint)iCol) {\n                  pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));\n                  psVar23 = (sqlite3 *)iDocid;\n                  do {\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  } while ((sqlite3 *)pRowid != psVar23);\n                }\n                local_ec = local_ec ^ (uint)psVar19;\n                local_e8 = local_e8 ^ uVar27;\n                if (1 < (int)pVtab[0x15].pModule) {\n                  pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);\n                  local_12c = pStmt + local_dc + local_dc * 8;\n                  local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);\n                  do {\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid);\n                }\n              }\n            }\n            if (pT != (sqlite3_tokenizer_cursor *)0x0) {\n              (**(code **)(iVar8 + 0x10))(pT);\n            }\n            if (psVar19 != (sqlite3_stmt *)0x65) goto LAB_0013d4fe;\n            psVar38 = pVtab[2].pModule;\n            psVar26 = pStmt_3;\n            if ((int)psVar38 <= (int)local_10c) goto LAB_0013d234;\n            bVar30 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar30;\n            pcVar9 = pVtab[2].zErrMsg;\n            uVar27 = local_10c;\n            bVar30 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar30;\n            if (pcVar9[local_10c] != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = (sqlite3_stmt *)uVar27;\n          }\n          local_10c = (int)local_114 + 2;\n        }\n        local_114 = (sqlite3_stmt *)local_10c;\n      } while ((int)local_114 < (int)psVar38);\n    }" if (parenthesized_expression "(0 < (int)psVar38)" ( (binary_expression "0 < (int)psVar38" number_literal < (cast_expression "(int)psVar38" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      local_114 = (sqlite3_stmt *)0x0;\n      pcVar9 = pVtab[2].zErrMsg;\n      do {\n        local_10c = (int)local_114 + 1;\n        if (pcVar9[(int)local_114] == '\0') {\n          uVar27 = (uint)((ulonglong)uVar11 * 9);\n          local_dc = uVar27 + (int)local_114;\n          local_d8 = (int)((ulonglong)uVar11 * 9 >> 0x20) + iVar20 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar27,(uint)local_114);\n          local_e4 = (int)local_114 + uVar14 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar20 * 8 | uVar11 >> 0x1d) + iVar20 + (uint)CARRY4(uVar14 * 0x48,uVar11) +\n                     (uint)CARRY4((uint)local_114,uVar14 * 0x51);\n          while( true ) {\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_03);\n            columnMallocFailure(psVar26);\n            psVar19 = pStmt_3;\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            iVar13 = sqlite3ValueBytes(pMVar10,enc_04);\n            columnMallocFailure(psVar19);\n            pT = (sqlite3_tokenizer_cursor *)0x0;\n            psVar19 = (sqlite3_stmt *)\n                      sqlite3Fts3OpenTokenizer\n                                ((sqlite3_tokenizer *)pVtab[3].pModule,(int)local_b0,pcVar9,iVar13,\n                                 &pT);\n            if (psVar19 == (sqlite3_stmt *)0x0) {\n              while( true ) {\n                iCol._0_4_ = 0;\n                iVal._0_4_ = 0;\n                rc_2 = 0;\n                pStmt = (sqlite3_stmt *)0x0;\n                psVar19 = (sqlite3_stmt *)\n                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt);\n                if (psVar19 != (sqlite3_stmt *)0x0) break;\n                psVar19 = pStmt + local_e4 + local_e4 * 8;\n                uVar27 = ((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8);\n                if (0 < (int)(uint)iCol) {\n                  pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));\n                  psVar23 = (sqlite3 *)iDocid;\n                  do {\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  } while ((sqlite3 *)pRowid != psVar23);\n                }\n                local_ec = local_ec ^ (uint)psVar19;\n                local_e8 = local_e8 ^ uVar27;\n                if (1 < (int)pVtab[0x15].pModule) {\n                  pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);\n                  local_12c = pStmt + local_dc + local_dc * 8;\n                  local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);\n                  do {\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid);\n                }\n              }\n            }\n            if (pT != (sqlite3_tokenizer_cursor *)0x0) {\n              (**(code **)(iVar8 + 0x10))(pT);\n            }\n            if (psVar19 != (sqlite3_stmt *)0x65) goto LAB_0013d4fe;\n            psVar38 = pVtab[2].pModule;\n            psVar26 = pStmt_3;\n            if ((int)psVar38 <= (int)local_10c) goto LAB_0013d234;\n            bVar30 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar30;\n            pcVar9 = pVtab[2].zErrMsg;\n            uVar27 = local_10c;\n            bVar30 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar30;\n            if (pcVar9[local_10c] != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = (sqlite3_stmt *)uVar27;\n          }\n          local_10c = (int)local_114 + 2;\n        }\n        local_114 = (sqlite3_stmt *)local_10c;\n      } while ((int)local_114 < (int)psVar38);\n    }" { (expression_statement "local_114 = (sqlite3_stmt *)0x0;" (assignment_expression "local_114 = (sqlite3_stmt *)0x0" identifier = (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar9 = pVtab[2].zErrMsg;" (assignment_expression "pcVar9 = pVtab[2].zErrMsg" identifier = (field_expression "pVtab[2].zErrMsg" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier)) ;) (do_statement "do {\n        local_10c = (int)local_114 + 1;\n        if (pcVar9[(int)local_114] == '\0') {\n          uVar27 = (uint)((ulonglong)uVar11 * 9);\n          local_dc = uVar27 + (int)local_114;\n          local_d8 = (int)((ulonglong)uVar11 * 9 >> 0x20) + iVar20 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar27,(uint)local_114);\n          local_e4 = (int)local_114 + uVar14 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar20 * 8 | uVar11 >> 0x1d) + iVar20 + (uint)CARRY4(uVar14 * 0x48,uVar11) +\n                     (uint)CARRY4((uint)local_114,uVar14 * 0x51);\n          while( true ) {\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_03);\n            columnMallocFailure(psVar26);\n            psVar19 = pStmt_3;\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            iVar13 = sqlite3ValueBytes(pMVar10,enc_04);\n            columnMallocFailure(psVar19);\n            pT = (sqlite3_tokenizer_cursor *)0x0;\n            psVar19 = (sqlite3_stmt *)\n                      sqlite3Fts3OpenTokenizer\n                                ((sqlite3_tokenizer *)pVtab[3].pModule,(int)local_b0,pcVar9,iVar13,\n                                 &pT);\n            if (psVar19 == (sqlite3_stmt *)0x0) {\n              while( true ) {\n                iCol._0_4_ = 0;\n                iVal._0_4_ = 0;\n                rc_2 = 0;\n                pStmt = (sqlite3_stmt *)0x0;\n                psVar19 = (sqlite3_stmt *)\n                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt);\n                if (psVar19 != (sqlite3_stmt *)0x0) break;\n                psVar19 = pStmt + local_e4 + local_e4 * 8;\n                uVar27 = ((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8);\n                if (0 < (int)(uint)iCol) {\n                  pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));\n                  psVar23 = (sqlite3 *)iDocid;\n                  do {\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  } while ((sqlite3 *)pRowid != psVar23);\n                }\n                local_ec = local_ec ^ (uint)psVar19;\n                local_e8 = local_e8 ^ uVar27;\n                if (1 < (int)pVtab[0x15].pModule) {\n                  pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);\n                  local_12c = pStmt + local_dc + local_dc * 8;\n                  local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);\n                  do {\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid);\n                }\n              }\n            }\n            if (pT != (sqlite3_tokenizer_cursor *)0x0) {\n              (**(code **)(iVar8 + 0x10))(pT);\n            }\n            if (psVar19 != (sqlite3_stmt *)0x65) goto LAB_0013d4fe;\n            psVar38 = pVtab[2].pModule;\n            psVar26 = pStmt_3;\n            if ((int)psVar38 <= (int)local_10c) goto LAB_0013d234;\n            bVar30 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar30;\n            pcVar9 = pVtab[2].zErrMsg;\n            uVar27 = local_10c;\n            bVar30 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar30;\n            if (pcVar9[local_10c] != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = (sqlite3_stmt *)uVar27;\n          }\n          local_10c = (int)local_114 + 2;\n        }\n        local_114 = (sqlite3_stmt *)local_10c;\n      } while ((int)local_114 < (int)psVar38);" do (compound_statement "{\n        local_10c = (int)local_114 + 1;\n        if (pcVar9[(int)local_114] == '\0') {\n          uVar27 = (uint)((ulonglong)uVar11 * 9);\n          local_dc = uVar27 + (int)local_114;\n          local_d8 = (int)((ulonglong)uVar11 * 9 >> 0x20) + iVar20 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar27,(uint)local_114);\n          local_e4 = (int)local_114 + uVar14 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar20 * 8 | uVar11 >> 0x1d) + iVar20 + (uint)CARRY4(uVar14 * 0x48,uVar11) +\n                     (uint)CARRY4((uint)local_114,uVar14 * 0x51);\n          while( true ) {\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_03);\n            columnMallocFailure(psVar26);\n            psVar19 = pStmt_3;\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            iVar13 = sqlite3ValueBytes(pMVar10,enc_04);\n            columnMallocFailure(psVar19);\n            pT = (sqlite3_tokenizer_cursor *)0x0;\n            psVar19 = (sqlite3_stmt *)\n                      sqlite3Fts3OpenTokenizer\n                                ((sqlite3_tokenizer *)pVtab[3].pModule,(int)local_b0,pcVar9,iVar13,\n                                 &pT);\n            if (psVar19 == (sqlite3_stmt *)0x0) {\n              while( true ) {\n                iCol._0_4_ = 0;\n                iVal._0_4_ = 0;\n                rc_2 = 0;\n                pStmt = (sqlite3_stmt *)0x0;\n                psVar19 = (sqlite3_stmt *)\n                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt);\n                if (psVar19 != (sqlite3_stmt *)0x0) break;\n                psVar19 = pStmt + local_e4 + local_e4 * 8;\n                uVar27 = ((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8);\n                if (0 < (int)(uint)iCol) {\n                  pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));\n                  psVar23 = (sqlite3 *)iDocid;\n                  do {\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  } while ((sqlite3 *)pRowid != psVar23);\n                }\n                local_ec = local_ec ^ (uint)psVar19;\n                local_e8 = local_e8 ^ uVar27;\n                if (1 < (int)pVtab[0x15].pModule) {\n                  pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);\n                  local_12c = pStmt + local_dc + local_dc * 8;\n                  local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);\n                  do {\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid);\n                }\n              }\n            }\n            if (pT != (sqlite3_tokenizer_cursor *)0x0) {\n              (**(code **)(iVar8 + 0x10))(pT);\n            }\n            if (psVar19 != (sqlite3_stmt *)0x65) goto LAB_0013d4fe;\n            psVar38 = pVtab[2].pModule;\n            psVar26 = pStmt_3;\n            if ((int)psVar38 <= (int)local_10c) goto LAB_0013d234;\n            bVar30 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar30;\n            pcVar9 = pVtab[2].zErrMsg;\n            uVar27 = local_10c;\n            bVar30 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar30;\n            if (pcVar9[local_10c] != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = (sqlite3_stmt *)uVar27;\n          }\n          local_10c = (int)local_114 + 2;\n        }\n        local_114 = (sqlite3_stmt *)local_10c;\n      }" { (expression_statement "local_10c = (int)local_114 + 1;" (assignment_expression "local_10c = (int)local_114 + 1" identifier = (binary_expression "(int)local_114 + 1" (cast_expression "(int)local_114" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if (pcVar9[(int)local_114] == '\0') {\n          uVar27 = (uint)((ulonglong)uVar11 * 9);\n          local_dc = uVar27 + (int)local_114;\n          local_d8 = (int)((ulonglong)uVar11 * 9 >> 0x20) + iVar20 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar27,(uint)local_114);\n          local_e4 = (int)local_114 + uVar14 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar20 * 8 | uVar11 >> 0x1d) + iVar20 + (uint)CARRY4(uVar14 * 0x48,uVar11) +\n                     (uint)CARRY4((uint)local_114,uVar14 * 0x51);\n          while( true ) {\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_03);\n            columnMallocFailure(psVar26);\n            psVar19 = pStmt_3;\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            iVar13 = sqlite3ValueBytes(pMVar10,enc_04);\n            columnMallocFailure(psVar19);\n            pT = (sqlite3_tokenizer_cursor *)0x0;\n            psVar19 = (sqlite3_stmt *)\n                      sqlite3Fts3OpenTokenizer\n                                ((sqlite3_tokenizer *)pVtab[3].pModule,(int)local_b0,pcVar9,iVar13,\n                                 &pT);\n            if (psVar19 == (sqlite3_stmt *)0x0) {\n              while( true ) {\n                iCol._0_4_ = 0;\n                iVal._0_4_ = 0;\n                rc_2 = 0;\n                pStmt = (sqlite3_stmt *)0x0;\n                psVar19 = (sqlite3_stmt *)\n                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt);\n                if (psVar19 != (sqlite3_stmt *)0x0) break;\n                psVar19 = pStmt + local_e4 + local_e4 * 8;\n                uVar27 = ((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8);\n                if (0 < (int)(uint)iCol) {\n                  pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));\n                  psVar23 = (sqlite3 *)iDocid;\n                  do {\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  } while ((sqlite3 *)pRowid != psVar23);\n                }\n                local_ec = local_ec ^ (uint)psVar19;\n                local_e8 = local_e8 ^ uVar27;\n                if (1 < (int)pVtab[0x15].pModule) {\n                  pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);\n                  local_12c = pStmt + local_dc + local_dc * 8;\n                  local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);\n                  do {\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid);\n                }\n              }\n            }\n            if (pT != (sqlite3_tokenizer_cursor *)0x0) {\n              (**(code **)(iVar8 + 0x10))(pT);\n            }\n            if (psVar19 != (sqlite3_stmt *)0x65) goto LAB_0013d4fe;\n            psVar38 = pVtab[2].pModule;\n            psVar26 = pStmt_3;\n            if ((int)psVar38 <= (int)local_10c) goto LAB_0013d234;\n            bVar30 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar30;\n            pcVar9 = pVtab[2].zErrMsg;\n            uVar27 = local_10c;\n            bVar30 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar30;\n            if (pcVar9[local_10c] != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = (sqlite3_stmt *)uVar27;\n          }\n          local_10c = (int)local_114 + 2;\n        }" if (parenthesized_expression "(pcVar9[(int)local_114] == '\0')" ( (binary_expression "pcVar9[(int)local_114] == '\0'" (subscript_expression "pcVar9[(int)local_114]" identifier [ (cast_expression "(int)local_114" ( (type_descriptor "int" primitive_type) ) identifier) ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          uVar27 = (uint)((ulonglong)uVar11 * 9);\n          local_dc = uVar27 + (int)local_114;\n          local_d8 = (int)((ulonglong)uVar11 * 9 >> 0x20) + iVar20 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar27,(uint)local_114);\n          local_e4 = (int)local_114 + uVar14 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar20 * 8 | uVar11 >> 0x1d) + iVar20 + (uint)CARRY4(uVar14 * 0x48,uVar11) +\n                     (uint)CARRY4((uint)local_114,uVar14 * 0x51);\n          while( true ) {\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_03);\n            columnMallocFailure(psVar26);\n            psVar19 = pStmt_3;\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            iVar13 = sqlite3ValueBytes(pMVar10,enc_04);\n            columnMallocFailure(psVar19);\n            pT = (sqlite3_tokenizer_cursor *)0x0;\n            psVar19 = (sqlite3_stmt *)\n                      sqlite3Fts3OpenTokenizer\n                                ((sqlite3_tokenizer *)pVtab[3].pModule,(int)local_b0,pcVar9,iVar13,\n                                 &pT);\n            if (psVar19 == (sqlite3_stmt *)0x0) {\n              while( true ) {\n                iCol._0_4_ = 0;\n                iVal._0_4_ = 0;\n                rc_2 = 0;\n                pStmt = (sqlite3_stmt *)0x0;\n                psVar19 = (sqlite3_stmt *)\n                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt);\n                if (psVar19 != (sqlite3_stmt *)0x0) break;\n                psVar19 = pStmt + local_e4 + local_e4 * 8;\n                uVar27 = ((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8);\n                if (0 < (int)(uint)iCol) {\n                  pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));\n                  psVar23 = (sqlite3 *)iDocid;\n                  do {\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  } while ((sqlite3 *)pRowid != psVar23);\n                }\n                local_ec = local_ec ^ (uint)psVar19;\n                local_e8 = local_e8 ^ uVar27;\n                if (1 < (int)pVtab[0x15].pModule) {\n                  pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);\n                  local_12c = pStmt + local_dc + local_dc * 8;\n                  local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);\n                  do {\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid);\n                }\n              }\n            }\n            if (pT != (sqlite3_tokenizer_cursor *)0x0) {\n              (**(code **)(iVar8 + 0x10))(pT);\n            }\n            if (psVar19 != (sqlite3_stmt *)0x65) goto LAB_0013d4fe;\n            psVar38 = pVtab[2].pModule;\n            psVar26 = pStmt_3;\n            if ((int)psVar38 <= (int)local_10c) goto LAB_0013d234;\n            bVar30 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar30;\n            pcVar9 = pVtab[2].zErrMsg;\n            uVar27 = local_10c;\n            bVar30 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar30;\n            if (pcVar9[local_10c] != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = (sqlite3_stmt *)uVar27;\n          }\n          local_10c = (int)local_114 + 2;\n        }" { (expression_statement "uVar27 = (uint)((ulonglong)uVar11 * 9);" (assignment_expression "uVar27 = (uint)((ulonglong)uVar11 * 9)" identifier = (call_expression "(uint)((ulonglong)uVar11 * 9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar11 * 9)" ( (binary_expression "(ulonglong)uVar11 * 9" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * number_literal) )))) ;) (expression_statement "local_dc = uVar27 + (int)local_114;" (assignment_expression "local_dc = uVar27 + (int)local_114" identifier = (binary_expression "uVar27 + (int)local_114" identifier + (cast_expression "(int)local_114" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_d8 = (int)((ulonglong)uVar11 * 9 >> 0x20) + iVar20 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar27,(uint)local_114);" (assignment_expression "local_d8 = (int)((ulonglong)uVar11 * 9 >> 0x20) + iVar20 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar27,(uint)local_114)" identifier = (binary_expression "(int)((ulonglong)uVar11 * 9 >> 0x20) + iVar20 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar27,(uint)local_114)" (binary_expression "(int)((ulonglong)uVar11 * 9 >> 0x20) + iVar20 * 9 + ((int)local_114 >> 0x1f)" (binary_expression "(int)((ulonglong)uVar11 * 9 >> 0x20) + iVar20 * 9" (cast_expression "(int)((ulonglong)uVar11 * 9 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar11 * 9 >> 0x20)" ( (binary_expression "(ulonglong)uVar11 * 9 >> 0x20" (binary_expression "(ulonglong)uVar11 * 9" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * number_literal) >> number_literal) ))) + (binary_expression "iVar20 * 9" identifier * number_literal)) + (parenthesized_expression "((int)local_114 >> 0x1f)" ( (binary_expression "(int)local_114 >> 0x1f" (cast_expression "(int)local_114" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar27,(uint)local_114)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar27,(uint)local_114)" identifier (argument_list "(uVar27,(uint)local_114)" ( identifier , (cast_expression "(uint)local_114" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (expression_statement "local_e4 = (int)local_114 + uVar14 * 0x51;" (assignment_expression "local_e4 = (int)local_114 + uVar14 * 0x51" identifier = (binary_expression "(int)local_114 + uVar14 * 0x51" (cast_expression "(int)local_114" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar14 * 0x51" identifier * number_literal))) ;) (expression_statement "local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar20 * 8 | uVar11 >> 0x1d) + iVar20 + (uint)CARRY4(uVar14 * 0x48,uVar11) +\n                     (uint)CARRY4((uint)local_114,uVar14 * 0x51);" (assignment_expression "local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar20 * 8 | uVar11 >> 0x1d) + iVar20 + (uint)CARRY4(uVar14 * 0x48,uVar11) +\n                     (uint)CARRY4((uint)local_114,uVar14 * 0x51)" identifier = (binary_expression "((int)local_114 >> 0x1f) +\n                     (iVar20 * 8 | uVar11 >> 0x1d) + iVar20 + (uint)CARRY4(uVar14 * 0x48,uVar11) +\n                     (uint)CARRY4((uint)local_114,uVar14 * 0x51)" (binary_expression "((int)local_114 >> 0x1f) +\n                     (iVar20 * 8 | uVar11 >> 0x1d) + iVar20 + (uint)CARRY4(uVar14 * 0x48,uVar11)" (binary_expression "((int)local_114 >> 0x1f) +\n                     (iVar20 * 8 | uVar11 >> 0x1d) + iVar20" (binary_expression "((int)local_114 >> 0x1f) +\n                     (iVar20 * 8 | uVar11 >> 0x1d)" (parenthesized_expression "((int)local_114 >> 0x1f)" ( (binary_expression "(int)local_114 >> 0x1f" (cast_expression "(int)local_114" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (parenthesized_expression "(iVar20 * 8 | uVar11 >> 0x1d)" ( (binary_expression "iVar20 * 8 | uVar11 >> 0x1d" (binary_expression "iVar20 * 8" identifier * number_literal) | (binary_expression "uVar11 >> 0x1d" identifier >> number_literal)) ))) + identifier) + (cast_expression "(uint)CARRY4(uVar14 * 0x48,uVar11)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar14 * 0x48,uVar11)" identifier (argument_list "(uVar14 * 0x48,uVar11)" ( (binary_expression "uVar14 * 0x48" identifier * number_literal) , identifier ))))) + (cast_expression "(uint)CARRY4((uint)local_114,uVar14 * 0x51)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_114,uVar14 * 0x51)" identifier (argument_list "((uint)local_114,uVar14 * 0x51)" ( (cast_expression "(uint)local_114" ( (type_descriptor "uint" type_identifier) ) identifier) , (binary_expression "uVar14 * 0x51" identifier * number_literal) )))))) ;) (while_statement "while( true ) {\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_03);\n            columnMallocFailure(psVar26);\n            psVar19 = pStmt_3;\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            iVar13 = sqlite3ValueBytes(pMVar10,enc_04);\n            columnMallocFailure(psVar19);\n            pT = (sqlite3_tokenizer_cursor *)0x0;\n            psVar19 = (sqlite3_stmt *)\n                      sqlite3Fts3OpenTokenizer\n                                ((sqlite3_tokenizer *)pVtab[3].pModule,(int)local_b0,pcVar9,iVar13,\n                                 &pT);\n            if (psVar19 == (sqlite3_stmt *)0x0) {\n              while( true ) {\n                iCol._0_4_ = 0;\n                iVal._0_4_ = 0;\n                rc_2 = 0;\n                pStmt = (sqlite3_stmt *)0x0;\n                psVar19 = (sqlite3_stmt *)\n                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt);\n                if (psVar19 != (sqlite3_stmt *)0x0) break;\n                psVar19 = pStmt + local_e4 + local_e4 * 8;\n                uVar27 = ((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8);\n                if (0 < (int)(uint)iCol) {\n                  pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));\n                  psVar23 = (sqlite3 *)iDocid;\n                  do {\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  } while ((sqlite3 *)pRowid != psVar23);\n                }\n                local_ec = local_ec ^ (uint)psVar19;\n                local_e8 = local_e8 ^ uVar27;\n                if (1 < (int)pVtab[0x15].pModule) {\n                  pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);\n                  local_12c = pStmt + local_dc + local_dc * 8;\n                  local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);\n                  do {\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid);\n                }\n              }\n            }\n            if (pT != (sqlite3_tokenizer_cursor *)0x0) {\n              (**(code **)(iVar8 + 0x10))(pT);\n            }\n            if (psVar19 != (sqlite3_stmt *)0x65) goto LAB_0013d4fe;\n            psVar38 = pVtab[2].pModule;\n            psVar26 = pStmt_3;\n            if ((int)psVar38 <= (int)local_10c) goto LAB_0013d234;\n            bVar30 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar30;\n            pcVar9 = pVtab[2].zErrMsg;\n            uVar27 = local_10c;\n            bVar30 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar30;\n            if (pcVar9[local_10c] != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = (sqlite3_stmt *)uVar27;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_03);\n            columnMallocFailure(psVar26);\n            psVar19 = pStmt_3;\n            pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);\n            iVar13 = sqlite3ValueBytes(pMVar10,enc_04);\n            columnMallocFailure(psVar19);\n            pT = (sqlite3_tokenizer_cursor *)0x0;\n            psVar19 = (sqlite3_stmt *)\n                      sqlite3Fts3OpenTokenizer\n                                ((sqlite3_tokenizer *)pVtab[3].pModule,(int)local_b0,pcVar9,iVar13,\n                                 &pT);\n            if (psVar19 == (sqlite3_stmt *)0x0) {\n              while( true ) {\n                iCol._0_4_ = 0;\n                iVal._0_4_ = 0;\n                rc_2 = 0;\n                pStmt = (sqlite3_stmt *)0x0;\n                psVar19 = (sqlite3_stmt *)\n                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt);\n                if (psVar19 != (sqlite3_stmt *)0x0) break;\n                psVar19 = pStmt + local_e4 + local_e4 * 8;\n                uVar27 = ((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8);\n                if (0 < (int)(uint)iCol) {\n                  pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));\n                  psVar23 = (sqlite3 *)iDocid;\n                  do {\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  } while ((sqlite3 *)pRowid != psVar23);\n                }\n                local_ec = local_ec ^ (uint)psVar19;\n                local_e8 = local_e8 ^ uVar27;\n                if (1 < (int)pVtab[0x15].pModule) {\n                  pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);\n                  local_12c = pStmt + local_dc + local_dc * 8;\n                  local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);\n                  do {\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid);\n                }\n              }\n            }\n            if (pT != (sqlite3_tokenizer_cursor *)0x0) {\n              (**(code **)(iVar8 + 0x10))(pT);\n            }\n            if (psVar19 != (sqlite3_stmt *)0x65) goto LAB_0013d4fe;\n            psVar38 = pVtab[2].pModule;\n            psVar26 = pStmt_3;\n            if ((int)psVar38 <= (int)local_10c) goto LAB_0013d234;\n            bVar30 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar30;\n            pcVar9 = pVtab[2].zErrMsg;\n            uVar27 = local_10c;\n            bVar30 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar30;\n            if (pcVar9[local_10c] != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = (sqlite3_stmt *)uVar27;\n          }" { (expression_statement "pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);" (assignment_expression "pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8)" identifier = (call_expression "columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8)" identifier (argument_list "((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8)" ( (cast_expression "(sqlite3_stmt *)pRowid" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)in_stack_fffffec8" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_03);" (assignment_expression "pcVar9 = (char *)sqlite3ValueText(pMVar10,enc_03)" identifier = (cast_expression "(char *)sqlite3ValueText(pMVar10,enc_03)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3ValueText(pMVar10,enc_03)" identifier (argument_list "(pMVar10,enc_03)" ( identifier , identifier ))))) ;) (expression_statement "columnMallocFailure(psVar26);" (call_expression "columnMallocFailure(psVar26)" identifier (argument_list "(psVar26)" ( identifier ))) ;) (expression_statement "psVar19 = pStmt_3;" (assignment_expression "psVar19 = pStmt_3" identifier = identifier) ;) (expression_statement "pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8);" (assignment_expression "pMVar10 = columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8)" identifier = (call_expression "columnMem((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8)" identifier (argument_list "((sqlite3_stmt *)pRowid,(int)in_stack_fffffec8)" ( (cast_expression "(sqlite3_stmt *)pRowid" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)in_stack_fffffec8" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "iVar13 = sqlite3ValueBytes(pMVar10,enc_04);" (assignment_expression "iVar13 = sqlite3ValueBytes(pMVar10,enc_04)" identifier = (call_expression "sqlite3ValueBytes(pMVar10,enc_04)" identifier (argument_list "(pMVar10,enc_04)" ( identifier , identifier )))) ;) (expression_statement "columnMallocFailure(psVar19);" (call_expression "columnMallocFailure(psVar19)" identifier (argument_list "(psVar19)" ( identifier ))) ;) (expression_statement "pT = (sqlite3_tokenizer_cursor *)0x0;" (assignment_expression "pT = (sqlite3_tokenizer_cursor *)0x0" identifier = (cast_expression "(sqlite3_tokenizer_cursor *)0x0" ( (type_descriptor "sqlite3_tokenizer_cursor *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "psVar19 = (sqlite3_stmt *)\n                      sqlite3Fts3OpenTokenizer\n                                ((sqlite3_tokenizer *)pVtab[3].pModule,(int)local_b0,pcVar9,iVar13,\n                                 &pT);" (assignment_expression "psVar19 = (sqlite3_stmt *)\n                      sqlite3Fts3OpenTokenizer\n                                ((sqlite3_tokenizer *)pVtab[3].pModule,(int)local_b0,pcVar9,iVar13,\n                                 &pT)" identifier = (cast_expression "(sqlite3_stmt *)\n                      sqlite3Fts3OpenTokenizer\n                                ((sqlite3_tokenizer *)pVtab[3].pModule,(int)local_b0,pcVar9,iVar13,\n                                 &pT)" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3Fts3OpenTokenizer\n                                ((sqlite3_tokenizer *)pVtab[3].pModule,(int)local_b0,pcVar9,iVar13,\n                                 &pT)" identifier (argument_list "((sqlite3_tokenizer *)pVtab[3].pModule,(int)local_b0,pcVar9,iVar13,\n                                 &pT)" ( (cast_expression "(sqlite3_tokenizer *)pVtab[3].pModule" ( (type_descriptor "sqlite3_tokenizer *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVtab[3].pModule" (subscript_expression "pVtab[3]" identifier [ number_literal ]) . field_identifier)) , (cast_expression "(int)local_b0" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier , (pointer_expression "&pT" & identifier) ))))) ;) (if_statement "if (psVar19 == (sqlite3_stmt *)0x0) {\n              while( true ) {\n                iCol._0_4_ = 0;\n                iVal._0_4_ = 0;\n                rc_2 = 0;\n                pStmt = (sqlite3_stmt *)0x0;\n                psVar19 = (sqlite3_stmt *)\n                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt);\n                if (psVar19 != (sqlite3_stmt *)0x0) break;\n                psVar19 = pStmt + local_e4 + local_e4 * 8;\n                uVar27 = ((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8);\n                if (0 < (int)(uint)iCol) {\n                  pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));\n                  psVar23 = (sqlite3 *)iDocid;\n                  do {\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  } while ((sqlite3 *)pRowid != psVar23);\n                }\n                local_ec = local_ec ^ (uint)psVar19;\n                local_e8 = local_e8 ^ uVar27;\n                if (1 < (int)pVtab[0x15].pModule) {\n                  pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);\n                  local_12c = pStmt + local_dc + local_dc * 8;\n                  local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);\n                  do {\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid);\n                }\n              }\n            }" if (parenthesized_expression "(psVar19 == (sqlite3_stmt *)0x0)" ( (binary_expression "psVar19 == (sqlite3_stmt *)0x0" identifier == (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              while( true ) {\n                iCol._0_4_ = 0;\n                iVal._0_4_ = 0;\n                rc_2 = 0;\n                pStmt = (sqlite3_stmt *)0x0;\n                psVar19 = (sqlite3_stmt *)\n                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt);\n                if (psVar19 != (sqlite3_stmt *)0x0) break;\n                psVar19 = pStmt + local_e4 + local_e4 * 8;\n                uVar27 = ((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8);\n                if (0 < (int)(uint)iCol) {\n                  pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));\n                  psVar23 = (sqlite3 *)iDocid;\n                  do {\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  } while ((sqlite3 *)pRowid != psVar23);\n                }\n                local_ec = local_ec ^ (uint)psVar19;\n                local_e8 = local_e8 ^ uVar27;\n                if (1 < (int)pVtab[0x15].pModule) {\n                  pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);\n                  local_12c = pStmt + local_dc + local_dc * 8;\n                  local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);\n                  do {\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid);\n                }\n              }\n            }" { (while_statement "while( true ) {\n                iCol._0_4_ = 0;\n                iVal._0_4_ = 0;\n                rc_2 = 0;\n                pStmt = (sqlite3_stmt *)0x0;\n                psVar19 = (sqlite3_stmt *)\n                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt);\n                if (psVar19 != (sqlite3_stmt *)0x0) break;\n                psVar19 = pStmt + local_e4 + local_e4 * 8;\n                uVar27 = ((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8);\n                if (0 < (int)(uint)iCol) {\n                  pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));\n                  psVar23 = (sqlite3 *)iDocid;\n                  do {\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  } while ((sqlite3 *)pRowid != psVar23);\n                }\n                local_ec = local_ec ^ (uint)psVar19;\n                local_e8 = local_e8 ^ uVar27;\n                if (1 < (int)pVtab[0x15].pModule) {\n                  pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);\n                  local_12c = pStmt + local_dc + local_dc * 8;\n                  local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);\n                  do {\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid);\n                }\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                iCol._0_4_ = 0;\n                iVal._0_4_ = 0;\n                rc_2 = 0;\n                pStmt = (sqlite3_stmt *)0x0;\n                psVar19 = (sqlite3_stmt *)\n                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt);\n                if (psVar19 != (sqlite3_stmt *)0x0) break;\n                psVar19 = pStmt + local_e4 + local_e4 * 8;\n                uVar27 = ((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8);\n                if (0 < (int)(uint)iCol) {\n                  pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));\n                  psVar23 = (sqlite3 *)iDocid;\n                  do {\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  } while ((sqlite3 *)pRowid != psVar23);\n                }\n                local_ec = local_ec ^ (uint)psVar19;\n                local_e8 = local_e8 ^ uVar27;\n                if (1 < (int)pVtab[0x15].pModule) {\n                  pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);\n                  local_12c = pStmt + local_dc + local_dc * 8;\n                  local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);\n                  do {\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid);\n                }\n              }" { (expression_statement "iCol._0_4_ = 0;" (assignment_expression "iCol._0_4_ = 0" (field_expression "iCol._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "iVal._0_4_ = 0;" (assignment_expression "iVal._0_4_ = 0" (field_expression "iVal._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "rc_2 = 0;" (assignment_expression "rc_2 = 0" identifier = number_literal) ;) (expression_statement "pStmt = (sqlite3_stmt *)0x0;" (assignment_expression "pStmt = (sqlite3_stmt *)0x0" identifier = (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "psVar19 = (sqlite3_stmt *)\n                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt);" (assignment_expression "psVar19 = (sqlite3_stmt *)\n                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt)" identifier = (cast_expression "(sqlite3_stmt *)\n                          (**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt)" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar8 + 0x14))(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt)" (parenthesized_expression "(**(code **)(iVar8 + 0x14))" ( (pointer_expression "**(code **)(iVar8 + 0x14)" * (pointer_expression "*(code **)(iVar8 + 0x14)" * (cast_expression "(code **)(iVar8 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) ))))) )) (argument_list "(pT,&iDocid,&iCol,&iVal,&rc_2,&pStmt)" ( identifier , (pointer_expression "&iDocid" & identifier) , (pointer_expression "&iCol" & identifier) , (pointer_expression "&iVal" & identifier) , (pointer_expression "&rc_2" & identifier) , (pointer_expression "&pStmt" & identifier) ))))) ;) (if_statement "if (psVar19 != (sqlite3_stmt *)0x0) break;" if (parenthesized_expression "(psVar19 != (sqlite3_stmt *)0x0)" ( (binary_expression "psVar19 != (sqlite3_stmt *)0x0" identifier != (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "psVar19 = pStmt + local_e4 + local_e4 * 8;" (assignment_expression "psVar19 = pStmt + local_e4 + local_e4 * 8" identifier = (binary_expression "pStmt + local_e4 + local_e4 * 8" (binary_expression "pStmt + local_e4" identifier + identifier) + (binary_expression "local_e4 * 8" identifier * number_literal))) ;) (expression_statement "uVar27 = ((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8);" (assignment_expression "uVar27 = ((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8)" identifier = (binary_expression "((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8)" (binary_expression "((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4) +\n                         (local_e0 << 3 | local_e4 >> 0x1d)" (binary_expression "((int)pStmt >> 0x1f) + local_e0 + (uint)CARRY4((uint)pStmt,local_e4)" (binary_expression "((int)pStmt >> 0x1f) + local_e0" (parenthesized_expression "((int)pStmt >> 0x1f)" ( (binary_expression "(int)pStmt >> 0x1f" (cast_expression "(int)pStmt" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + identifier) + (cast_expression "(uint)CARRY4((uint)pStmt,local_e4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)pStmt,local_e4)" identifier (argument_list "((uint)pStmt,local_e4)" ( (cast_expression "(uint)pStmt" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier ))))) + (parenthesized_expression "(local_e0 << 3 | local_e4 >> 0x1d)" ( (binary_expression "local_e0 << 3 | local_e4 >> 0x1d" (binary_expression "local_e0 << 3" identifier << number_literal) | (binary_expression "local_e4 >> 0x1d" identifier >> number_literal)) ))) + (cast_expression "(uint)CARRY4((uint)(pStmt + local_e4),local_e4 * 8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)(pStmt + local_e4),local_e4 * 8)" identifier (argument_list "((uint)(pStmt + local_e4),local_e4 * 8)" ( (call_expression "(uint)(pStmt + local_e4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pStmt + local_e4)" ( (binary_expression "pStmt + local_e4" identifier + identifier) ))) , (binary_expression "local_e4 * 8" identifier * number_literal) )))))) ;) (if_statement "if (0 < (int)(uint)iCol) {\n                  pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));\n                  psVar23 = (sqlite3 *)iDocid;\n                  do {\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  } while ((sqlite3 *)pRowid != psVar23);\n                }" if (parenthesized_expression "(0 < (int)(uint)iCol)" ( (binary_expression "0 < (int)(uint)iCol" number_literal < (cast_expression "(int)(uint)iCol" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)iCol" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n                  pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));\n                  psVar23 = (sqlite3 *)iDocid;\n                  do {\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  } while ((sqlite3 *)pRowid != psVar23);\n                }" { (expression_statement "pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68));" (assignment_expression "pRowid = (sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68))" identifier = (cast_expression "(sqlite_int64 *)((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68))" ( (type_descriptor "sqlite_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68))" ( (binary_expression "(int)((sqlite3 *)iDocid)->aLimit + ((uint)iCol - 0x68)" (cast_expression "(int)((sqlite3 *)iDocid)->aLimit" ( (type_descriptor "int" primitive_type) ) (field_expression "((sqlite3 *)iDocid)->aLimit" (parenthesized_expression "((sqlite3 *)iDocid)" ( (cast_expression "(sqlite3 *)iDocid" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) + (parenthesized_expression "((uint)iCol - 0x68)" ( (binary_expression "(uint)iCol - 0x68" (cast_expression "(uint)iCol" ( (type_descriptor "uint" type_identifier) ) identifier) - number_literal) ))) )))) ;) (expression_statement "psVar23 = (sqlite3 *)iDocid;" (assignment_expression "psVar23 = (sqlite3 *)iDocid" identifier = (cast_expression "(sqlite3 *)iDocid" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  } while ((sqlite3 *)pRowid != psVar23);" do (compound_statement "{\n                    uVar16 = (uint)*(char *)&psVar23->pVfs;\n                    uVar17 = (int)psVar19 * 8;\n                    uVar15 = (uint)psVar19 >> 0x1d;\n                    uVar22 = uVar17 + uVar16;\n                    bVar30 = CARRY4((uint)psVar19,uVar22);\n                    psVar19 = psVar19 + uVar22;\n                    uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;\n                    psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                  }" { (expression_statement "uVar16 = (uint)*(char *)&psVar23->pVfs;" (assignment_expression "uVar16 = (uint)*(char *)&psVar23->pVfs" identifier = (binary_expression "(uint)*(char *)&psVar23->pVfs" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)&psVar23->pVfs" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar23->pVfs" & (field_expression "psVar23->pVfs" identifier -> field_identifier))))) ;) (expression_statement "uVar17 = (int)psVar19 * 8;" (assignment_expression "uVar17 = (int)psVar19 * 8" identifier = (binary_expression "(int)psVar19 * 8" (cast_expression "(int)psVar19" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "uVar15 = (uint)psVar19 >> 0x1d;" (assignment_expression "uVar15 = (uint)psVar19 >> 0x1d" identifier = (binary_expression "(uint)psVar19 >> 0x1d" (cast_expression "(uint)psVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "uVar22 = uVar17 + uVar16;" (assignment_expression "uVar22 = uVar17 + uVar16" identifier = (binary_expression "uVar17 + uVar16" identifier + identifier)) ;) (expression_statement "bVar30 = CARRY4((uint)psVar19,uVar22);" (assignment_expression "bVar30 = CARRY4((uint)psVar19,uVar22)" identifier = (call_expression "CARRY4((uint)psVar19,uVar22)" identifier (argument_list "((uint)psVar19,uVar22)" ( (cast_expression "(uint)psVar19" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "psVar19 = psVar19 + uVar22;" (assignment_expression "psVar19 = psVar19 + uVar22" identifier = (binary_expression "psVar19 + uVar22" identifier + identifier)) ;) (expression_statement "uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30;" (assignment_expression "uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30" identifier = (binary_expression "uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16) + (uint)bVar30" (binary_expression "uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f) +\n                                      (uint)CARRY4(uVar17,uVar16)" (binary_expression "uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar16 >> 0x1f)" (binary_expression "uVar27 + (uVar27 << 3 | uVar15)" identifier + (parenthesized_expression "(uVar27 << 3 | uVar15)" ( (binary_expression "uVar27 << 3 | uVar15" (binary_expression "uVar27 << 3" identifier << number_literal) | identifier) ))) + (parenthesized_expression "((int)uVar16 >> 0x1f)" ( (binary_expression "(int)uVar16 >> 0x1f" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar17,uVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar17,uVar16)" identifier (argument_list "(uVar17,uVar16)" ( identifier , identifier ))))) + (cast_expression "(uint)bVar30" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);" (assignment_expression "psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1)" identifier = (cast_expression "(sqlite3 *)((int)&psVar23->pVfs + 1)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar23->pVfs + 1)" ( (binary_expression "(int)&psVar23->pVfs + 1" (cast_expression "(int)&psVar23->pVfs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar23->pVfs" & (field_expression "psVar23->pVfs" identifier -> field_identifier))) + number_literal) )))) ;) }) while (parenthesized_expression "((sqlite3 *)pRowid != psVar23)" ( (binary_expression "(sqlite3 *)pRowid != psVar23" (cast_expression "(sqlite3 *)pRowid" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) ;) })) (expression_statement "local_ec = local_ec ^ (uint)psVar19;" (assignment_expression "local_ec = local_ec ^ (uint)psVar19" identifier = (binary_expression "local_ec ^ (uint)psVar19" identifier ^ (cast_expression "(uint)psVar19" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_e8 = local_e8 ^ uVar27;" (assignment_expression "local_e8 = local_e8 ^ uVar27" identifier = (binary_expression "local_e8 ^ uVar27" identifier ^ identifier)) ;) (if_statement "if (1 < (int)pVtab[0x15].pModule) {\n                  pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);\n                  local_12c = pStmt + local_dc + local_dc * 8;\n                  local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);\n                  do {\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid);\n                }" if (parenthesized_expression "(1 < (int)pVtab[0x15].pModule)" ( (binary_expression "1 < (int)pVtab[0x15].pModule" number_literal < (cast_expression "(int)pVtab[0x15].pModule" ( (type_descriptor "int" primitive_type) ) (field_expression "pVtab[0x15].pModule" (subscript_expression "pVtab[0x15]" identifier [ number_literal ]) . field_identifier))) )) (compound_statement "{\n                  pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);\n                  local_12c = pStmt + local_dc + local_dc * 8;\n                  local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);\n                  do {\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid);\n                }" { (expression_statement "pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18);" (assignment_expression "pRowid = (sqlite_int64 *)(pVtab[0x15].nRef + 0x18)" identifier = (cast_expression "(sqlite_int64 *)(pVtab[0x15].nRef + 0x18)" ( (type_descriptor "sqlite_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pVtab[0x15].nRef + 0x18)" ( (binary_expression "pVtab[0x15].nRef + 0x18" (field_expression "pVtab[0x15].nRef" (subscript_expression "pVtab[0x15]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) ;) (expression_statement "local_12c = pStmt + local_dc + local_dc * 8;" (assignment_expression "local_12c = pStmt + local_dc + local_dc * 8" identifier = (binary_expression "pStmt + local_dc + local_dc * 8" (binary_expression "pStmt + local_dc" identifier + identifier) + (binary_expression "local_dc * 8" identifier * number_literal))) ;) (expression_statement "local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8);" (assignment_expression "local_128 = ((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8)" identifier = (binary_expression "((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8)" (binary_expression "((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d)" (binary_expression "((int)pStmt >> 0x1f) + local_d8 + (uint)CARRY4((uint)pStmt,local_dc)" (binary_expression "((int)pStmt >> 0x1f) + local_d8" (parenthesized_expression "((int)pStmt >> 0x1f)" ( (binary_expression "(int)pStmt >> 0x1f" (cast_expression "(int)pStmt" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + identifier) + (cast_expression "(uint)CARRY4((uint)pStmt,local_dc)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)pStmt,local_dc)" identifier (argument_list "((uint)pStmt,local_dc)" ( (cast_expression "(uint)pStmt" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier ))))) + (parenthesized_expression "(local_d8 << 3 | local_dc >> 0x1d)" ( (binary_expression "local_d8 << 3 | local_dc >> 0x1d" (binary_expression "local_d8 << 3" identifier << number_literal) | (binary_expression "local_dc >> 0x1d" identifier >> number_literal)) ))) + (cast_expression "(uint)CARRY4((uint)(pStmt + local_dc),local_dc * 8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)(pStmt + local_dc),local_dc * 8)" identifier (argument_list "((uint)(pStmt + local_dc),local_dc * 8)" ( (call_expression "(uint)(pStmt + local_dc)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pStmt + local_dc)" ( (binary_expression "pStmt + local_dc" identifier + identifier) ))) , (binary_expression "local_dc * 8" identifier * number_literal) )))))) ;) (do_statement "do {\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  } while ((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid);" do (compound_statement "{\n                    iVar13 = *(int *)pRowid;\n                    if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }\n                    pRowid = (sqlite_int64 *)((int)pRowid + 0x18);\n                    bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;\n                    local_12c = local_12c + 0x51;\n                    local_128 = local_128 + (uint)bVar30;\n                  }" { (expression_statement "iVar13 = *(int *)pRowid;" (assignment_expression "iVar13 = *(int *)pRowid" identifier = (pointer_expression "*(int *)pRowid" * (cast_expression "(int *)pRowid" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar13 <= (int)(uint)iCol) {\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }" if (parenthesized_expression "(iVar13 <= (int)(uint)iCol)" ( (binary_expression "iVar13 <= (int)(uint)iCol" identifier <= (cast_expression "(int)(uint)iCol" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)iCol" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n                      psVar19 = local_12c + 0x51;\n                      uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);\n                      if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }\n                      local_ec = local_ec ^ (uint)psVar19;\n                      local_e8 = local_e8 ^ uVar27;\n                    }" { (expression_statement "psVar19 = local_12c + 0x51;" (assignment_expression "psVar19 = local_12c + 0x51" identifier = (binary_expression "local_12c + 0x51" identifier + number_literal)) ;) (expression_statement "uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c);" (assignment_expression "uVar27 = local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c)" identifier = (binary_expression "local_128 + (uint)((sqlite3_stmt *)0xffffffae < local_12c)" identifier + (call_expression "(uint)((sqlite3_stmt *)0xffffffae < local_12c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((sqlite3_stmt *)0xffffffae < local_12c)" ( (binary_expression "(sqlite3_stmt *)0xffffffae < local_12c" (cast_expression "(sqlite3_stmt *)0xffffffae" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))))) ;) (if_statement "if (0 < iVar13) {\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }" if (parenthesized_expression "(0 < iVar13)" ( (binary_expression "0 < iVar13" number_literal < identifier) )) (compound_statement "{\n                        psVar23 = (sqlite3 *)iDocid;\n                        do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);\n                      }" { (expression_statement "psVar23 = (sqlite3 *)iDocid;" (assignment_expression "psVar23 = (sqlite3 *)iDocid" identifier = (cast_expression "(sqlite3 *)iDocid" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        } while ((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23);" do (compound_statement "{\n                          uVar22 = (uint)*(char *)&psVar23->pVfs;\n                          uVar16 = (int)psVar19 * 8;\n                          uVar15 = (uint)psVar19 >> 0x1d;\n                          uVar17 = uVar16 + uVar22;\n                          bVar30 = CARRY4((uint)psVar19,uVar17);\n                          psVar19 = psVar19 + uVar17;\n                          uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;\n                          psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);\n                        }" { (expression_statement "uVar22 = (uint)*(char *)&psVar23->pVfs;" (assignment_expression "uVar22 = (uint)*(char *)&psVar23->pVfs" identifier = (binary_expression "(uint)*(char *)&psVar23->pVfs" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)&psVar23->pVfs" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar23->pVfs" & (field_expression "psVar23->pVfs" identifier -> field_identifier))))) ;) (expression_statement "uVar16 = (int)psVar19 * 8;" (assignment_expression "uVar16 = (int)psVar19 * 8" identifier = (binary_expression "(int)psVar19 * 8" (cast_expression "(int)psVar19" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "uVar15 = (uint)psVar19 >> 0x1d;" (assignment_expression "uVar15 = (uint)psVar19 >> 0x1d" identifier = (binary_expression "(uint)psVar19 >> 0x1d" (cast_expression "(uint)psVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "uVar17 = uVar16 + uVar22;" (assignment_expression "uVar17 = uVar16 + uVar22" identifier = (binary_expression "uVar16 + uVar22" identifier + identifier)) ;) (expression_statement "bVar30 = CARRY4((uint)psVar19,uVar17);" (assignment_expression "bVar30 = CARRY4((uint)psVar19,uVar17)" identifier = (call_expression "CARRY4((uint)psVar19,uVar17)" identifier (argument_list "((uint)psVar19,uVar17)" ( (cast_expression "(uint)psVar19" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "psVar19 = psVar19 + uVar17;" (assignment_expression "psVar19 = psVar19 + uVar17" identifier = (binary_expression "psVar19 + uVar17" identifier + identifier)) ;) (expression_statement "uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30;" (assignment_expression "uVar27 = uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30" identifier = (binary_expression "uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22) + (uint)bVar30" (binary_expression "uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f) +\n                                            (uint)CARRY4(uVar16,uVar22)" (binary_expression "uVar27 + (uVar27 << 3 | uVar15) + ((int)uVar22 >> 0x1f)" (binary_expression "uVar27 + (uVar27 << 3 | uVar15)" identifier + (parenthesized_expression "(uVar27 << 3 | uVar15)" ( (binary_expression "uVar27 << 3 | uVar15" (binary_expression "uVar27 << 3" identifier << number_literal) | identifier) ))) + (parenthesized_expression "((int)uVar22 >> 0x1f)" ( (binary_expression "(int)uVar22 >> 0x1f" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar16,uVar22)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar16,uVar22)" identifier (argument_list "(uVar16,uVar22)" ( identifier , identifier ))))) + (cast_expression "(uint)bVar30" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1);" (assignment_expression "psVar23 = (sqlite3 *)((int)&psVar23->pVfs + 1)" identifier = (cast_expression "(sqlite3 *)((int)&psVar23->pVfs + 1)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar23->pVfs + 1)" ( (binary_expression "(int)&psVar23->pVfs + 1" (cast_expression "(int)&psVar23->pVfs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar23->pVfs" & (field_expression "psVar23->pVfs" identifier -> field_identifier))) + number_literal) )))) ;) }) while (parenthesized_expression "((sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23)" ( (binary_expression "(sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68) !=\n                                 psVar23" (cast_expression "(sqlite3 *)((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68)" ( (binary_expression "(int)((sqlite3 *)iDocid)->aLimit + iVar13 + -0x68" (binary_expression "(int)((sqlite3 *)iDocid)->aLimit + iVar13" (cast_expression "(int)((sqlite3 *)iDocid)->aLimit" ( (type_descriptor "int" primitive_type) ) (field_expression "((sqlite3 *)iDocid)->aLimit" (parenthesized_expression "((sqlite3 *)iDocid)" ( (cast_expression "(sqlite3 *)iDocid" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) + identifier) + number_literal) ))) != identifier) )) ;) })) (expression_statement "local_ec = local_ec ^ (uint)psVar19;" (assignment_expression "local_ec = local_ec ^ (uint)psVar19" identifier = (binary_expression "local_ec ^ (uint)psVar19" identifier ^ (cast_expression "(uint)psVar19" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_e8 = local_e8 ^ uVar27;" (assignment_expression "local_e8 = local_e8 ^ uVar27" identifier = (binary_expression "local_e8 ^ uVar27" identifier ^ identifier)) ;) })) (expression_statement "pRowid = (sqlite_int64 *)((int)pRowid + 0x18);" (assignment_expression "pRowid = (sqlite_int64 *)((int)pRowid + 0x18)" identifier = (cast_expression "(sqlite_int64 *)((int)pRowid + 0x18)" ( (type_descriptor "sqlite_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pRowid + 0x18)" ( (binary_expression "(int)pRowid + 0x18" (cast_expression "(int)pRowid" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar30 = (sqlite3_stmt *)0xffffffae < local_12c;" (assignment_expression "bVar30 = (sqlite3_stmt *)0xffffffae < local_12c" identifier = (binary_expression "(sqlite3_stmt *)0xffffffae < local_12c" (cast_expression "(sqlite3_stmt *)0xffffffae" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier)) ;) (expression_statement "local_12c = local_12c + 0x51;" (assignment_expression "local_12c = local_12c + 0x51" identifier = (binary_expression "local_12c + 0x51" identifier + number_literal)) ;) (expression_statement "local_128 = local_128 + (uint)bVar30;" (assignment_expression "local_128 = local_128 + (uint)bVar30" identifier = (binary_expression "local_128 + (uint)bVar30" identifier + (cast_expression "(uint)bVar30" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "((sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid)" ( (binary_expression "(sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=\n                           pRowid" (cast_expression "(sqlite_int64 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18)" ( (type_descriptor "sqlite_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18)" ( (binary_expression "pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18" (field_expression "pVtab[0x15].nRef" (subscript_expression "pVtab[0x15]" identifier [ number_literal ]) . field_identifier) + (binary_expression "(int)pVtab[0x15].pModule * 0x18" (cast_expression "(int)pVtab[0x15].pModule" ( (type_descriptor "int" primitive_type) ) (field_expression "pVtab[0x15].pModule" (subscript_expression "pVtab[0x15]" identifier [ number_literal ]) . field_identifier)) * number_literal)) ))) != identifier) )) ;) })) })) })) (if_statement "if (pT != (sqlite3_tokenizer_cursor *)0x0) {\n              (**(code **)(iVar8 + 0x10))(pT);\n            }" if (parenthesized_expression "(pT != (sqlite3_tokenizer_cursor *)0x0)" ( (binary_expression "pT != (sqlite3_tokenizer_cursor *)0x0" identifier != (cast_expression "(sqlite3_tokenizer_cursor *)0x0" ( (type_descriptor "sqlite3_tokenizer_cursor *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              (**(code **)(iVar8 + 0x10))(pT);\n            }" { (expression_statement "(**(code **)(iVar8 + 0x10))(pT);" (call_expression "(**(code **)(iVar8 + 0x10))(pT)" (parenthesized_expression "(**(code **)(iVar8 + 0x10))" ( (pointer_expression "**(code **)(iVar8 + 0x10)" * (pointer_expression "*(code **)(iVar8 + 0x10)" * (cast_expression "(code **)(iVar8 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) ))))) )) (argument_list "(pT)" ( identifier ))) ;) })) (if_statement "if (psVar19 != (sqlite3_stmt *)0x65) goto LAB_0013d4fe;" if (parenthesized_expression "(psVar19 != (sqlite3_stmt *)0x65)" ( (binary_expression "psVar19 != (sqlite3_stmt *)0x65" identifier != (cast_expression "(sqlite3_stmt *)0x65" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013d4fe;" goto statement_identifier ;)) (expression_statement "psVar38 = pVtab[2].pModule;" (assignment_expression "psVar38 = pVtab[2].pModule" identifier = (field_expression "pVtab[2].pModule" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "psVar26 = pStmt_3;" (assignment_expression "psVar26 = pStmt_3" identifier = identifier) ;) (if_statement "if ((int)psVar38 <= (int)local_10c) goto LAB_0013d234;" if (parenthesized_expression "((int)psVar38 <= (int)local_10c)" ( (binary_expression "(int)psVar38 <= (int)local_10c" (cast_expression "(int)psVar38" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_10c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0013d234;" goto statement_identifier ;)) (expression_statement "bVar30 = 0xfffffffe < local_dc;" (assignment_expression "bVar30 = 0xfffffffe < local_dc" identifier = (binary_expression "0xfffffffe < local_dc" number_literal < identifier)) ;) (expression_statement "local_dc = local_dc + 1;" (assignment_expression "local_dc = local_dc + 1" identifier = (binary_expression "local_dc + 1" identifier + number_literal)) ;) (expression_statement "local_d8 = local_d8 + (uint)bVar30;" (assignment_expression "local_d8 = local_d8 + (uint)bVar30" identifier = (binary_expression "local_d8 + (uint)bVar30" identifier + (cast_expression "(uint)bVar30" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pcVar9 = pVtab[2].zErrMsg;" (assignment_expression "pcVar9 = pVtab[2].zErrMsg" identifier = (field_expression "pVtab[2].zErrMsg" (subscript_expression "pVtab[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "uVar27 = local_10c;" (assignment_expression "uVar27 = local_10c" identifier = identifier) ;) (expression_statement "bVar30 = 0xfffffffe < local_e4;" (assignment_expression "bVar30 = 0xfffffffe < local_e4" identifier = (binary_expression "0xfffffffe < local_e4" number_literal < identifier)) ;) (expression_statement "local_e4 = local_e4 + 1;" (assignment_expression "local_e4 = local_e4 + 1" identifier = (binary_expression "local_e4 + 1" identifier + number_literal)) ;) (expression_statement "local_e0 = local_e0 + (uint)bVar30;" (assignment_expression "local_e0 = local_e0 + (uint)bVar30" identifier = (binary_expression "local_e0 + (uint)bVar30" identifier + (cast_expression "(uint)bVar30" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (pcVar9[local_10c] != '\0') break;" if (parenthesized_expression "(pcVar9[local_10c] != '\0')" ( (binary_expression "pcVar9[local_10c] != '\0'" (subscript_expression "pcVar9[local_10c]" identifier [ identifier ]) != (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "local_10c = local_10c + 1;" (assignment_expression "local_10c = local_10c + 1" identifier = (binary_expression "local_10c + 1" identifier + number_literal)) ;) (expression_statement "local_114 = (sqlite3_stmt *)uVar27;" (assignment_expression "local_114 = (sqlite3_stmt *)uVar27" identifier = (cast_expression "(sqlite3_stmt *)uVar27" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "local_10c = (int)local_114 + 2;" (assignment_expression "local_10c = (int)local_114 + 2" identifier = (binary_expression "(int)local_114 + 2" (cast_expression "(int)local_114" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) })) (expression_statement "local_114 = (sqlite3_stmt *)local_10c;" (assignment_expression "local_114 = (sqlite3_stmt *)local_10c" identifier = (cast_expression "(sqlite3_stmt *)local_10c" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "((int)local_114 < (int)psVar38)" ( (binary_expression "(int)local_114 < (int)psVar38" (cast_expression "(int)local_114" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)psVar38" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (goto_statement "goto LAB_0013d234;" goto statement_identifier ;) })) (expression_statement "sqlite3_finalize(pStmt_3);" (call_expression "sqlite3_finalize(pStmt_3)" identifier (argument_list "(pStmt_3)" ( identifier ))) ;) (if_statement "if (local_e8 == local_b4 && local_ec == local_d0) goto LAB_0013c0e0;" if (parenthesized_expression "(local_e8 == local_b4 && local_ec == local_d0)" ( (binary_expression "local_e8 == local_b4 && local_ec == local_d0" (binary_expression "local_e8 == local_b4" identifier == identifier) && (binary_expression "local_ec == local_d0" identifier == identifier)) )) (goto_statement "goto LAB_0013c0e0;" goto statement_identifier ;)) (expression_statement "local_f0 = (sqlite3_stmt *)0x10b;" (assignment_expression "local_f0 = (sqlite3_stmt *)0x10b" identifier = (cast_expression "(sqlite3_stmt *)0x10b" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg;" (assignment_expression "pBlob = (sqlite3_blob *)pVtab[0x14].zErrMsg" identifier = (cast_expression "(sqlite3_blob *)pVtab[0x14].zErrMsg" ( (type_descriptor "sqlite3_blob *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVtab[0x14].zErrMsg" (subscript_expression "pVtab[0x14]" identifier [ number_literal ]) . field_identifier))) ;) (labeled_statement "LAB_0013ba71:\n  rc = (int)local_f0;" statement_identifier : (expression_statement "rc = (int)local_f0;" (assignment_expression "rc = (int)local_f0" identifier = (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (labeled_statement "LAB_0013ba95:\n  sqlite3_blob_close(pBlob);" statement_identifier : (expression_statement "sqlite3_blob_close(pBlob);" (call_expression "sqlite3_blob_close(pBlob)" identifier (argument_list "(pBlob)" ( identifier ))) ;)) (expression_statement "pVtab[0x14].zErrMsg = (char *)0x0;" (assignment_expression "pVtab[0x14].zErrMsg = (char *)0x0" (field_expression "pVtab[0x14].zErrMsg" (subscript_expression "pVtab[0x14]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return rc;" return identifier ;) })))
(translation_unit "int * FUN_0013b860(int param_1,int param_2,int *param_3,uint *param_4)\n\n{\n  ushort uVar1;\n  char cVar2;\n  int iVar3;\n  void *__s;\n  int iVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  int *__s_00;\n  undefined1 *puVar14;\n  char *pcVar15;\n  byte *pbVar16;\n  uint uVar17;\n  int *extraout_ECX;\n  int *extraout_ECX_00;\n  int *extraout_ECX_01;\n  int *extraout_ECX_02;\n  int *extraout_ECX_03;\n  int *extraout_ECX_04;\n  int *extraout_ECX_05;\n  int *extraout_ECX_06;\n  int iVar18;\n  byte *pbVar19;\n  int unaff_EBP;\n  uint uVar20;\n  int **ppiVar21;\n  byte *pbVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  byte bVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  uint uVar28;\n  int *__s_01;\n  int local_134;\n  int *local_12c;\n  int local_128;\n  int local_124;\n  uint local_114;\n  int local_110;\n  uint local_10c;\n  int *local_108;\n  uint local_104;\n  uint local_100;\n  int *local_f0;\n  uint local_ec;\n  uint local_e8;\n  uint local_e4;\n  int local_e0;\n  uint local_dc;\n  int local_d8;\n  uint local_d0;\n  uint local_b4;\n  int *local_98;\n  undefined4 local_94;\n  undefined4 local_8c;\n  int local_88;\n  char *local_84;\n  int local_80;\n  uint local_7c [5];\n  int *local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  int *local_58;\n  int local_54;\n  int **local_4c;\n  int local_48;\n  char *local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  bVar24 = 0;\n  FUN_0003a405();\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_94 = 0;\n  if (1 < param_2) {\n    if ((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')) {\n      iVar3 = FUN_0007f6d0();\n      iVar4 = FUN_0007f360();\n      if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }\nLAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba71;\n    }\n    piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4];\n    uVar1 = *(ushort *)(piVar6 + 2);\n    if ((uVar1 & 4) == 0) {\n      if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }\n    }\n    else {\n      iVar3 = *piVar6;\n    }\n    if (iVar3 < 0) {\n      local_98 = (int *)0x13;\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba95;\n    }\n  }\nLAB_0013b900:\n  iVar3 = FUN_00067fc0();\n  if ((iVar3 != 0) || (__s = (void *)FUN_00055780(), __s == (void *)0x0)) {\n    local_98 = (int *)0x7;\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    goto LAB_0013ba95;\n  }\n  iVar3 = *(int *)(param_1 + 0x18) + 1;\n  memset(__s,0,iVar3 * 8);\n  bVar23 = false;\n  if (*(int *)(param_1 + 0x108) == 0) {\n    local_98 = (int *)FUN_00101610();\n    piVar6 = local_58;\n    if (local_98 == (int *)0x0) {\n      iVar4 = FUN_00079820();\n      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }\n      FUN_000e7e00(local_58);\n      local_98 = (int *)FUN_000bfe40(local_58);\n      if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }\n  }\n  else {\n    local_98 = (int *)0x0;\n    if (param_2 < 2) {\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }\n    else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }\n    if (*(char *)(param_1 + 0xe8) != '\0') {\n      FUN_00111db0(__s,local_94);\n    }\n  }\nLAB_0013bb29:\n  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  }\n  else {\n    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }\n    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);\n    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n  }\n  goto LAB_0013ba95;\nLAB_0013d4fe:\n  FUN_000c0450(local_8c);\n  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  local_f0 = piVar6;\n  goto LAB_0013ba71;\nLAB_0013d234:\n  iVar4 = FUN_000e7e00(uVar5);\n  if (iVar4 == 100) {\n    FUN_0004c5d0();\n    uVar27 = FUN_00045540();\n    iVar18 = (int)((ulonglong)uVar27 >> 0x20);\n    uVar7 = (uint)uVar27;\n    FUN_0004c6c0();\n    iVar4 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x2c) == 0) {\n      uVar28 = 0;\n      iVar9 = 0;\n    }\n    else {\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }\n    uVar10 = uVar7 * 9 + uVar28;\n    iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28);\n    uVar7 = uVar10 * 9;\n    iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8);\n    uVar5 = local_8c;\n    if (0 < iVar4) {\n      local_114 = 0;\n      iVar9 = *(int *)(param_1 + 0x20);\n      do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);\n    }\n    goto LAB_0013d234;\n  }\n  FUN_000c0450(local_8c);\n  if (local_e8 == local_b4 && local_ec == local_d0) goto LAB_0013c0e0;\n  local_f0 = (int *)0x10b;\n  uVar5 = *(undefined4 *)(param_1 + 0xf8);\nLAB_0013ba71:\n  local_98 = local_f0;\nLAB_0013ba95:\n  FUN_000c0610(uVar5);\n  *(undefined4 *)(param_1 + 0xf8) = 0;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }\n  return local_98;\n}\n\n" (function_definition "int * FUN_0013b860(int param_1,int param_2,int *param_3,uint *param_4)\n\n{\n  ushort uVar1;\n  char cVar2;\n  int iVar3;\n  void *__s;\n  int iVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  int *__s_00;\n  undefined1 *puVar14;\n  char *pcVar15;\n  byte *pbVar16;\n  uint uVar17;\n  int *extraout_ECX;\n  int *extraout_ECX_00;\n  int *extraout_ECX_01;\n  int *extraout_ECX_02;\n  int *extraout_ECX_03;\n  int *extraout_ECX_04;\n  int *extraout_ECX_05;\n  int *extraout_ECX_06;\n  int iVar18;\n  byte *pbVar19;\n  int unaff_EBP;\n  uint uVar20;\n  int **ppiVar21;\n  byte *pbVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  byte bVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  uint uVar28;\n  int *__s_01;\n  int local_134;\n  int *local_12c;\n  int local_128;\n  int local_124;\n  uint local_114;\n  int local_110;\n  uint local_10c;\n  int *local_108;\n  uint local_104;\n  uint local_100;\n  int *local_f0;\n  uint local_ec;\n  uint local_e8;\n  uint local_e4;\n  int local_e0;\n  uint local_dc;\n  int local_d8;\n  uint local_d0;\n  uint local_b4;\n  int *local_98;\n  undefined4 local_94;\n  undefined4 local_8c;\n  int local_88;\n  char *local_84;\n  int local_80;\n  uint local_7c [5];\n  int *local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  int *local_58;\n  int local_54;\n  int **local_4c;\n  int local_48;\n  char *local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  bVar24 = 0;\n  FUN_0003a405();\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_94 = 0;\n  if (1 < param_2) {\n    if ((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')) {\n      iVar3 = FUN_0007f6d0();\n      iVar4 = FUN_0007f360();\n      if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }\nLAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba71;\n    }\n    piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4];\n    uVar1 = *(ushort *)(piVar6 + 2);\n    if ((uVar1 & 4) == 0) {\n      if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }\n    }\n    else {\n      iVar3 = *piVar6;\n    }\n    if (iVar3 < 0) {\n      local_98 = (int *)0x13;\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba95;\n    }\n  }\nLAB_0013b900:\n  iVar3 = FUN_00067fc0();\n  if ((iVar3 != 0) || (__s = (void *)FUN_00055780(), __s == (void *)0x0)) {\n    local_98 = (int *)0x7;\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    goto LAB_0013ba95;\n  }\n  iVar3 = *(int *)(param_1 + 0x18) + 1;\n  memset(__s,0,iVar3 * 8);\n  bVar23 = false;\n  if (*(int *)(param_1 + 0x108) == 0) {\n    local_98 = (int *)FUN_00101610();\n    piVar6 = local_58;\n    if (local_98 == (int *)0x0) {\n      iVar4 = FUN_00079820();\n      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }\n      FUN_000e7e00(local_58);\n      local_98 = (int *)FUN_000bfe40(local_58);\n      if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }\n  }\n  else {\n    local_98 = (int *)0x0;\n    if (param_2 < 2) {\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }\n    else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }\n    if (*(char *)(param_1 + 0xe8) != '\0') {\n      FUN_00111db0(__s,local_94);\n    }\n  }\nLAB_0013bb29:\n  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  }\n  else {\n    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }\n    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);\n    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n  }\n  goto LAB_0013ba95;\nLAB_0013d4fe:\n  FUN_000c0450(local_8c);\n  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  local_f0 = piVar6;\n  goto LAB_0013ba71;\nLAB_0013d234:\n  iVar4 = FUN_000e7e00(uVar5);\n  if (iVar4 == 100) {\n    FUN_0004c5d0();\n    uVar27 = FUN_00045540();\n    iVar18 = (int)((ulonglong)uVar27 >> 0x20);\n    uVar7 = (uint)uVar27;\n    FUN_0004c6c0();\n    iVar4 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x2c) == 0) {\n      uVar28 = 0;\n      iVar9 = 0;\n    }\n    else {\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }\n    uVar10 = uVar7 * 9 + uVar28;\n    iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28);\n    uVar7 = uVar10 * 9;\n    iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8);\n    uVar5 = local_8c;\n    if (0 < iVar4) {\n      local_114 = 0;\n      iVar9 = *(int *)(param_1 + 0x20);\n      do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);\n    }\n    goto LAB_0013d234;\n  }\n  FUN_000c0450(local_8c);\n  if (local_e8 == local_b4 && local_ec == local_d0) goto LAB_0013c0e0;\n  local_f0 = (int *)0x10b;\n  uVar5 = *(undefined4 *)(param_1 + 0xf8);\nLAB_0013ba71:\n  local_98 = local_f0;\nLAB_0013ba95:\n  FUN_000c0610(uVar5);\n  *(undefined4 *)(param_1 + 0xf8) = 0;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }\n  return local_98;\n}" primitive_type (pointer_declarator "* FUN_0013b860(int param_1,int param_2,int *param_3,uint *param_4)" * (function_declarator "FUN_0013b860(int param_1,int param_2,int *param_3,uint *param_4)" identifier (parameter_list "(int param_1,int param_2,int *param_3,uint *param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) )))) (compound_statement "{\n  ushort uVar1;\n  char cVar2;\n  int iVar3;\n  void *__s;\n  int iVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  int *__s_00;\n  undefined1 *puVar14;\n  char *pcVar15;\n  byte *pbVar16;\n  uint uVar17;\n  int *extraout_ECX;\n  int *extraout_ECX_00;\n  int *extraout_ECX_01;\n  int *extraout_ECX_02;\n  int *extraout_ECX_03;\n  int *extraout_ECX_04;\n  int *extraout_ECX_05;\n  int *extraout_ECX_06;\n  int iVar18;\n  byte *pbVar19;\n  int unaff_EBP;\n  uint uVar20;\n  int **ppiVar21;\n  byte *pbVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  byte bVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  uint uVar28;\n  int *__s_01;\n  int local_134;\n  int *local_12c;\n  int local_128;\n  int local_124;\n  uint local_114;\n  int local_110;\n  uint local_10c;\n  int *local_108;\n  uint local_104;\n  uint local_100;\n  int *local_f0;\n  uint local_ec;\n  uint local_e8;\n  uint local_e4;\n  int local_e0;\n  uint local_dc;\n  int local_d8;\n  uint local_d0;\n  uint local_b4;\n  int *local_98;\n  undefined4 local_94;\n  undefined4 local_8c;\n  int local_88;\n  char *local_84;\n  int local_80;\n  uint local_7c [5];\n  int *local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  int *local_58;\n  int local_54;\n  int **local_4c;\n  int local_48;\n  char *local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  bVar24 = 0;\n  FUN_0003a405();\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_94 = 0;\n  if (1 < param_2) {\n    if ((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')) {\n      iVar3 = FUN_0007f6d0();\n      iVar4 = FUN_0007f360();\n      if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }\nLAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba71;\n    }\n    piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4];\n    uVar1 = *(ushort *)(piVar6 + 2);\n    if ((uVar1 & 4) == 0) {\n      if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }\n    }\n    else {\n      iVar3 = *piVar6;\n    }\n    if (iVar3 < 0) {\n      local_98 = (int *)0x13;\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba95;\n    }\n  }\nLAB_0013b900:\n  iVar3 = FUN_00067fc0();\n  if ((iVar3 != 0) || (__s = (void *)FUN_00055780(), __s == (void *)0x0)) {\n    local_98 = (int *)0x7;\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    goto LAB_0013ba95;\n  }\n  iVar3 = *(int *)(param_1 + 0x18) + 1;\n  memset(__s,0,iVar3 * 8);\n  bVar23 = false;\n  if (*(int *)(param_1 + 0x108) == 0) {\n    local_98 = (int *)FUN_00101610();\n    piVar6 = local_58;\n    if (local_98 == (int *)0x0) {\n      iVar4 = FUN_00079820();\n      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }\n      FUN_000e7e00(local_58);\n      local_98 = (int *)FUN_000bfe40(local_58);\n      if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }\n  }\n  else {\n    local_98 = (int *)0x0;\n    if (param_2 < 2) {\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }\n    else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }\n    if (*(char *)(param_1 + 0xe8) != '\0') {\n      FUN_00111db0(__s,local_94);\n    }\n  }\nLAB_0013bb29:\n  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  }\n  else {\n    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }\n    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);\n    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n  }\n  goto LAB_0013ba95;\nLAB_0013d4fe:\n  FUN_000c0450(local_8c);\n  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  local_f0 = piVar6;\n  goto LAB_0013ba71;\nLAB_0013d234:\n  iVar4 = FUN_000e7e00(uVar5);\n  if (iVar4 == 100) {\n    FUN_0004c5d0();\n    uVar27 = FUN_00045540();\n    iVar18 = (int)((ulonglong)uVar27 >> 0x20);\n    uVar7 = (uint)uVar27;\n    FUN_0004c6c0();\n    iVar4 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x2c) == 0) {\n      uVar28 = 0;\n      iVar9 = 0;\n    }\n    else {\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }\n    uVar10 = uVar7 * 9 + uVar28;\n    iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28);\n    uVar7 = uVar10 * 9;\n    iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8);\n    uVar5 = local_8c;\n    if (0 < iVar4) {\n      local_114 = 0;\n      iVar9 = *(int *)(param_1 + 0x20);\n      do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);\n    }\n    goto LAB_0013d234;\n  }\n  FUN_000c0450(local_8c);\n  if (local_e8 == local_b4 && local_ec == local_d0) goto LAB_0013c0e0;\n  local_f0 = (int *)0x10b;\n  uVar5 = *(undefined4 *)(param_1 + 0xf8);\nLAB_0013ba71:\n  local_98 = local_f0;\nLAB_0013ba95:\n  FUN_000c0610(uVar5);\n  *(undefined4 *)(param_1 + 0xf8) = 0;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }\n  return local_98;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "void *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int *__s_00;" primitive_type (pointer_declarator "*__s_00" * identifier) ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int *extraout_ECX;" primitive_type (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "int *extraout_ECX_00;" primitive_type (pointer_declarator "*extraout_ECX_00" * identifier) ;) (declaration "int *extraout_ECX_01;" primitive_type (pointer_declarator "*extraout_ECX_01" * identifier) ;) (declaration "int *extraout_ECX_02;" primitive_type (pointer_declarator "*extraout_ECX_02" * identifier) ;) (declaration "int *extraout_ECX_03;" primitive_type (pointer_declarator "*extraout_ECX_03" * identifier) ;) (declaration "int *extraout_ECX_04;" primitive_type (pointer_declarator "*extraout_ECX_04" * identifier) ;) (declaration "int *extraout_ECX_05;" primitive_type (pointer_declarator "*extraout_ECX_05" * identifier) ;) (declaration "int *extraout_ECX_06;" primitive_type (pointer_declarator "*extraout_ECX_06" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "int **ppiVar21;" primitive_type (pointer_declarator "**ppiVar21" * (pointer_declarator "*ppiVar21" * identifier)) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "byte bVar24;" type_identifier identifier ;) (declaration "longlong lVar25;" type_identifier identifier ;) (declaration "longlong lVar26;" type_identifier identifier ;) (declaration "undefined8 uVar27;" type_identifier identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "int *__s_01;" primitive_type (pointer_declarator "*__s_01" * identifier) ;) (declaration "int local_134;" primitive_type identifier ;) (declaration "int *local_12c;" primitive_type (pointer_declarator "*local_12c" * identifier) ;) (declaration "int local_128;" primitive_type identifier ;) (declaration "int local_124;" primitive_type identifier ;) (declaration "uint local_114;" type_identifier identifier ;) (declaration "int local_110;" primitive_type identifier ;) (declaration "uint local_10c;" type_identifier identifier ;) (declaration "int *local_108;" primitive_type (pointer_declarator "*local_108" * identifier) ;) (declaration "uint local_104;" type_identifier identifier ;) (declaration "uint local_100;" type_identifier identifier ;) (declaration "int *local_f0;" primitive_type (pointer_declarator "*local_f0" * identifier) ;) (declaration "uint local_ec;" type_identifier identifier ;) (declaration "uint local_e8;" type_identifier identifier ;) (declaration "uint local_e4;" type_identifier identifier ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "uint local_dc;" type_identifier identifier ;) (declaration "int local_d8;" primitive_type identifier ;) (declaration "uint local_d0;" type_identifier identifier ;) (declaration "uint local_b4;" type_identifier identifier ;) (declaration "int *local_98;" primitive_type (pointer_declarator "*local_98" * identifier) ;) (declaration "undefined4 local_94;" type_identifier identifier ;) (declaration "undefined4 local_8c;" type_identifier identifier ;) (declaration "int local_88;" primitive_type identifier ;) (declaration "char *local_84;" primitive_type (pointer_declarator "*local_84" * identifier) ;) (declaration "int local_80;" primitive_type identifier ;) (declaration "uint local_7c [5];" type_identifier (array_declarator "local_7c [5]" identifier [ number_literal ]) ;) (declaration "int *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "int *local_58;" primitive_type (pointer_declarator "*local_58" * identifier) ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "int **local_4c;" primitive_type (pointer_declarator "**local_4c" * (pointer_declarator "*local_4c" * identifier)) ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "char *local_30;" primitive_type (pointer_declarator "*local_30" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "bVar24 = 0;" (assignment_expression "bVar24 = 0" identifier = number_literal) ;) (expression_statement "FUN_0003a405();" (call_expression "FUN_0003a405()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (if_statement "if (1 < param_2) {\n    if ((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')) {\n      iVar3 = FUN_0007f6d0();\n      iVar4 = FUN_0007f360();\n      if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }\nLAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba71;\n    }\n    piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4];\n    uVar1 = *(ushort *)(piVar6 + 2);\n    if ((uVar1 & 4) == 0) {\n      if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }\n    }\n    else {\n      iVar3 = *piVar6;\n    }\n    if (iVar3 < 0) {\n      local_98 = (int *)0x13;\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba95;\n    }\n  }" if (parenthesized_expression "(1 < param_2)" ( (binary_expression "1 < param_2" number_literal < identifier) )) (compound_statement "{\n    if ((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')) {\n      iVar3 = FUN_0007f6d0();\n      iVar4 = FUN_0007f360();\n      if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }\nLAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba71;\n    }\n    piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4];\n    uVar1 = *(ushort *)(piVar6 + 2);\n    if ((uVar1 & 4) == 0) {\n      if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }\n    }\n    else {\n      iVar3 = *piVar6;\n    }\n    if (iVar3 < 0) {\n      local_98 = (int *)0x13;\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba95;\n    }\n  }" { (if_statement "if ((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')) {\n      iVar3 = FUN_0007f6d0();\n      iVar4 = FUN_0007f360();\n      if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }\nLAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba71;\n    }" if (parenthesized_expression "((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05'))" ( (binary_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')" (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05')" ( (binary_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" * (cast_expression "(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" ( (binary_expression "unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" identifier + number_literal) + (parenthesized_expression "(*(ushort *)(*param_3 + 8) & 0x1f)" ( (binary_expression "*(ushort *)(*param_3 + 8) & 0x1f" (pointer_expression "*(ushort *)(*param_3 + 8)" * (cast_expression "(ushort *)(*param_3 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_3 + 8)" ( (binary_expression "*param_3 + 8" (pointer_expression "*param_3" * identifier) + number_literal) )))) & number_literal) ))) )))) == (char_literal "'\x05'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')" ( (binary_expression "*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f))" * (cast_expression "(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f))" ( (binary_expression "unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" identifier + number_literal) + (parenthesized_expression "(*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)" ( (binary_expression "*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f" (pointer_expression "*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8)" * (cast_expression "(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3[*(int *)(param_1 + 0x18) + 2] + 8)" ( (binary_expression "param_3[*(int *)(param_1 + 0x18) + 2] + 8" (subscript_expression "param_3[*(int *)(param_1 + 0x18) + 2]" identifier [ (binary_expression "*(int *)(param_1 + 0x18) + 2" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) + number_literal) ]) + number_literal) )))) & number_literal) ))) )))) != (char_literal "'\x05'" ' escape_sequence ')) ))) )) (compound_statement "{\n      iVar3 = FUN_0007f6d0();\n      iVar4 = FUN_0007f360();\n      if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }\nLAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba71;\n    }" { (expression_statement "iVar3 = FUN_0007f6d0();" (assignment_expression "iVar3 = FUN_0007f6d0()" identifier = (call_expression "FUN_0007f6d0()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar4 = FUN_0007f360();" (assignment_expression "iVar4 = FUN_0007f360()" identifier = (call_expression "FUN_0007f360()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }" { (expression_statement "local_f0 = (int *)0x7;" (assignment_expression "local_f0 = (int *)0x7" identifier = (cast_expression "(int *)0x7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) })) (if_statement "if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }" if (parenthesized_expression "(iVar4 == 8)" ( (binary_expression "iVar4 == 8" identifier == number_literal) )) (compound_statement "{\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }" { (expression_statement "iVar4 = FUN_00044730();" (assignment_expression "iVar4 = FUN_00044730()" identifier = (call_expression "FUN_00044730()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }" { (expression_statement "local_f0 = (int *)FUN_00139450();" (assignment_expression "local_f0 = (int *)FUN_00139450()" identifier = (cast_expression "(int *)FUN_00139450()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00139450()" identifier (argument_list "()" ( ))))) ;) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) })) (labeled_statement "LAB_0013be5a:\n        iVar4 = FUN_00044730();" statement_identifier : (expression_statement "iVar4 = FUN_00044730();" (assignment_expression "iVar4 = FUN_00044730()" identifier = (call_expression "FUN_00044730()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }" { (labeled_statement "LAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);" statement_identifier : (expression_statement "cVar2 = *(char *)(iVar3 + 6);" (assignment_expression "cVar2 = *(char *)(iVar3 + 6)" identifier = (pointer_expression "*(char *)(iVar3 + 6)" * (cast_expression "(char *)(iVar3 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 6)" ( (binary_expression "iVar3 + 6" identifier + number_literal) ))))) ;)) (expression_statement "pcVar15 = (char *)(iVar3 + 6);" (assignment_expression "pcVar15 = (char *)(iVar3 + 6)" identifier = (cast_expression "(char *)(iVar3 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 6)" ( (binary_expression "iVar3 + 6" identifier + number_literal) )))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }" if (parenthesized_expression "((byte)(cVar2 - 0x30U) < 10)" ( (binary_expression "(byte)(cVar2 - 0x30U) < 10" (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 - 0x30U)" ( (binary_expression "cVar2 - 0x30U" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }" { (do_statement "do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);" do (compound_statement "{\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            }" { (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = cVar2 + -0x30 + iVar3 * 10;" (assignment_expression "iVar3 = cVar2 + -0x30 + iVar3 * 10" identifier = (binary_expression "cVar2 + -0x30 + iVar3 * 10" (binary_expression "cVar2 + -0x30" identifier + number_literal) + (binary_expression "iVar3 * 10" identifier * number_literal))) ;) (expression_statement "cVar2 = *pcVar15;" (assignment_expression "cVar2 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (if_statement "if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;" if (parenthesized_expression "(9 < (byte)(cVar2 - 0x30U))" ( (binary_expression "9 < (byte)(cVar2 - 0x30U)" number_literal < (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 - 0x30U)" ( (binary_expression "cVar2 - 0x30U" identifier - number_literal) )))) )) (goto_statement "goto LAB_0013beb1;" goto statement_identifier ;)) }) while (parenthesized_expression "(iVar3 < 0xccccccb)" ( (binary_expression "iVar3 < 0xccccccb" identifier < number_literal) )) ;) }) (else_clause "else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }" else (compound_statement "{\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }" { (labeled_statement "LAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }" statement_identifier : (if_statement "if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }" if (parenthesized_expression "(cVar2 == ',')" ( (binary_expression "cVar2 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }" { (expression_statement "cVar2 = pcVar15[1];" (assignment_expression "cVar2 = pcVar15[1]" identifier = (subscript_expression "pcVar15[1]" identifier [ number_literal ])) ;) (if_statement "if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }" if (parenthesized_expression "((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10))" ( (binary_expression "(cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)" (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)" ( (comma_expression "pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) , (binary_expression "(byte)(cVar2 - 0x30U) < 10" (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 - 0x30U)" ( (binary_expression "cVar2 - 0x30U" identifier - number_literal) ))) < number_literal)) ))) )) (compound_statement "{\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);" do (compound_statement "{\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                }" { (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = cVar2 + -0x30 + iVar3 * 10;" (assignment_expression "iVar3 = cVar2 + -0x30 + iVar3 * 10" identifier = (binary_expression "cVar2 + -0x30 + iVar3 * 10" (binary_expression "cVar2 + -0x30" identifier + number_literal) + (binary_expression "iVar3 * 10" identifier * number_literal))) ;) (expression_statement "cVar2 = *pcVar15;" (assignment_expression "cVar2 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (if_statement "if (9 < (byte)(cVar2 - 0x30U)) break;" if (parenthesized_expression "(9 < (byte)(cVar2 - 0x30U))" ( (binary_expression "9 < (byte)(cVar2 - 0x30U)" number_literal < (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 - 0x30U)" ( (binary_expression "cVar2 - 0x30U" identifier - number_literal) )))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(iVar3 < 0xccccccb)" ( (binary_expression "iVar3 < 0xccccccb" identifier < number_literal) )) ;) (if_statement "if (1 < iVar3) goto joined_r0x0013cd82;" if (parenthesized_expression "(1 < iVar3)" ( (binary_expression "1 < iVar3" number_literal < identifier) )) (goto_statement "goto joined_r0x0013cd82;" goto statement_identifier ;)) })) }) (else_clause "else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }" else (compound_statement "{\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }" { (labeled_statement "joined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }" statement_identifier : (if_statement "if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }" { (expression_statement "local_58 = (int *)0x0;" (assignment_expression "local_58 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }" if (parenthesized_expression "(*(char *)(param_1 + 0xe9) == '\0')" ( (binary_expression "*(char *)(param_1 + 0xe9) == '\0'" (pointer_expression "*(char *)(param_1 + 0xe9)" * (cast_expression "(char *)(param_1 + 0xe9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe9)" ( (binary_expression "param_1 + 0xe9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }" { (expression_statement "FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));" (call_expression "FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14))" identifier (argument_list "(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14))" ( (pointer_expression "&local_58" & identifier) , (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , (binary_expression "unaff_EBP + 0x324ae" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) ))) ;) (if_statement "if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }" if (parenthesized_expression "(local_58 == (int *)0x0)" ( (binary_expression "local_58 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }" { (expression_statement "*(undefined1 *)(param_1 + 0xe9) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xe9) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xe9)" * (cast_expression "(undefined1 *)(param_1 + 0xe9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe9)" ( (binary_expression "param_1 + 0xe9" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0013bf22;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }" else (compound_statement "{\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }" { (labeled_statement "LAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();" statement_identifier : (expression_statement "local_58 = (int *)FUN_0012d940();" (assignment_expression "local_58 = (int *)FUN_0012d940()" identifier = (cast_expression "(int *)FUN_0012d940()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012d940()" identifier (argument_list "()" ( ))))) ;)) }))) (expression_statement "FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));" (call_expression "FUN_000c0610(*(undefined4 *)(param_1 + 0xf8))" identifier (argument_list "(*(undefined4 *)(param_1 + 0xf8))" ( (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0xf8) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xf8) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_f0 = local_58;" (assignment_expression "local_f0 = local_58" identifier = identifier) ;) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) }))) })))) }))) })) (labeled_statement "LAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;" statement_identifier : (expression_statement "local_f0 = (int *)&DAT_00000001;" (assignment_expression "local_f0 = (int *)&DAT_00000001" identifier = (cast_expression "(int *)&DAT_00000001" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;)) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) })) (if_statement "if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }" if (parenthesized_expression "(iVar4 == 7)" ( (binary_expression "iVar4 == 7" identifier == number_literal) )) (compound_statement "{\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }" { (expression_statement "iVar4 = FUN_00044730();" (assignment_expression "iVar4 = FUN_00044730()" identifier = (call_expression "FUN_00044730()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 0) goto LAB_0013be5a;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0013be5a;" goto statement_identifier ;)) (expression_statement "local_f0 = (int *)FUN_0010da50();" (assignment_expression "local_f0 = (int *)FUN_0010da50()" identifier = (cast_expression "(int *)FUN_0010da50()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010da50()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_68 = local_f0;" (assignment_expression "local_68 = local_f0" identifier = identifier) ;) (if_statement "if (local_f0 != (int *)0x0) goto LAB_0013c0e0;" if (parenthesized_expression "(local_f0 != (int *)0x0)" ( (binary_expression "local_f0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013c0e0;" goto statement_identifier ;)) (expression_statement "local_58 = (int *)0x0;" (assignment_expression "local_58 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));" (assignment_expression "iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc))" identifier = (call_expression "FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc))" identifier (argument_list "(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc))" ( (binary_expression "unaff_EBP + 0x230e7" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0xdc)" * (cast_expression "(undefined4 *)(param_1 + 0xdc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xdc)" ( (binary_expression "param_1 + 0xdc" identifier + number_literal) )))) )))) ;) (expression_statement "piVar6 = extraout_ECX;" (assignment_expression "piVar6 = extraout_ECX" identifier = identifier) ;) (if_statement "if (iVar3 == 0) goto LAB_0013d10b;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013d10b;" goto statement_identifier ;)) (expression_statement "local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);" (assignment_expression "local_68 = (int *)FUN_00100700(0x80,0,&local_58,0)" identifier = (cast_expression "(int *)FUN_00100700(0x80,0,&local_58,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00100700(0x80,0,&local_58,0)" identifier (argument_list "(0x80,0,&local_58,0)" ( number_literal , number_literal , (pointer_expression "&local_58" & identifier) , number_literal ))))) ;) (expression_statement "FUN_00044000(iVar3);" (call_expression "FUN_00044000(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "piVar6 = local_68;" (assignment_expression "piVar6 = local_68" identifier = identifier) ;) (if_statement "if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }" if (parenthesized_expression "(local_68 == (int *)0x0)" ( (binary_expression "local_68 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }" { (expression_statement "iVar3 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = FUN_00067fc0();" (assignment_expression "iVar4 = FUN_00067fc0()" identifier = (call_expression "FUN_00067fc0()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar6 = extraout_ECX_00;" (assignment_expression "piVar6 = extraout_ECX_00" identifier = identifier) ;) (if_statement "if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }" { (labeled_statement "LAB_0013d10b:\n            local_68 = (int *)0x7;" statement_identifier : (expression_statement "local_68 = (int *)0x7;" (assignment_expression "local_68 = (int *)0x7" identifier = (cast_expression "(int *)0x7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_0013d116;" goto statement_identifier ;) })) (expression_statement "__s_00 = (int *)FUN_00055780();" (assignment_expression "__s_00 = (int *)FUN_00055780()" identifier = (cast_expression "(int *)FUN_00055780()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00055780()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar6 = extraout_ECX_01;" (assignment_expression "piVar6 = extraout_ECX_01" identifier = identifier) ;) (if_statement "if (__s_00 == (int *)0x0) goto LAB_0013d10b;" if (parenthesized_expression "(__s_00 == (int *)0x0)" ( (binary_expression "__s_00 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013d10b;" goto statement_identifier ;)) (expression_statement "__s_01 = __s_00;" (assignment_expression "__s_01 = __s_00" identifier = identifier) ;) (expression_statement "memset(__s_00,0,(iVar3 + 1) * 0xc);" (call_expression "memset(__s_00,0,(iVar3 + 1) * 0xc)" identifier (argument_list "(__s_00,0,(iVar3 + 1) * 0xc)" ( identifier , number_literal , (binary_expression "(iVar3 + 1) * 0xc" (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )) * number_literal) ))) ;) (expression_statement "iVar3 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "local_108 = __s_00 + iVar3 * 2 + 2;" (assignment_expression "local_108 = __s_00 + iVar3 * 2 + 2" identifier = (binary_expression "__s_00 + iVar3 * 2 + 2" (binary_expression "__s_00 + iVar3 * 2" identifier + (binary_expression "iVar3 * 2" identifier * number_literal)) + number_literal)) ;) (expression_statement "local_f0 = (int *)0x0;" (assignment_expression "local_f0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar6 = extraout_ECX_02;" (assignment_expression "piVar6 = extraout_ECX_02" identifier = identifier) ;) (while_statement "while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }" while (parenthesized_expression "((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100)))" ( (parenthesized_expression "(local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))" ( (binary_expression "local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100)" (binary_expression "local_68 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100)" ( (comma_expression "iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100" (assignment_expression "iVar4 = FUN_000e7e00(local_58)" identifier = (call_expression "FUN_000e7e00(local_58)" identifier (argument_list "(local_58)" ( identifier )))) , (comma_expression "piVar6 = extraout_ECX_03, iVar4 == 100" (assignment_expression "piVar6 = extraout_ECX_03" identifier = identifier) , (binary_expression "iVar4 == 100" identifier == number_literal))) ))) )) )) (compound_statement "{\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }" { (expression_statement "local_134 = 0;" (assignment_expression "local_134 = 0" identifier = number_literal) ;) (if_statement "if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }" if (parenthesized_expression "(*(int *)(param_1 + 0x2c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x2c) != 0" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }" { (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_134 = FUN_00045540();" (assignment_expression "local_134 = FUN_00045540()" identifier = (call_expression "FUN_00045540()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "lVar25 = FUN_0005b180();" (assignment_expression "lVar25 = FUN_0005b180()" identifier = (call_expression "FUN_0005b180()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar18 = (int)((ulonglong)lVar25 >> 0x20);" (assignment_expression "iVar18 = (int)((ulonglong)lVar25 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar25 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar25 >> 0x20)" ( (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));" (assignment_expression "uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c))" identifier = (call_expression "(uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)lVar25 < *(uint *)(param_1 + 0x10c))" ( (binary_expression "(uint)lVar25 < *(uint *)(param_1 + 0x10c)" (cast_expression "(uint)lVar25" ( (type_descriptor "uint" type_identifier) ) identifier) < (pointer_expression "*(uint *)(param_1 + 0x10c)" * (cast_expression "(uint *)(param_1 + 0x10c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar4 = iVar18 - *(int *)(param_1 + 0x110);" (assignment_expression "iVar4 = iVar18 - *(int *)(param_1 + 0x110)" identifier = (binary_expression "iVar18 - *(int *)(param_1 + 0x110)" identifier - (pointer_expression "*(int *)(param_1 + 0x110)" * (cast_expression "(int *)(param_1 + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))))) ;) (if_statement "if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }" if (parenthesized_expression "(((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0))" ( (binary_expression "((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)" (parenthesized_expression "((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104)))" ( (binary_expression "(((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))" (parenthesized_expression "(((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114)))))" ( (binary_expression "((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))" (parenthesized_expression "((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0)" ( (binary_expression "(SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0" (parenthesized_expression "(SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7))" ( (binary_expression "SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)" (call_expression "SBORROW4(iVar18,*(int *)(param_1 + 0x110))" identifier (argument_list "(iVar18,*(int *)(param_1 + 0x110))" ( identifier , (pointer_expression "*(int *)(param_1 + 0x110)" * (cast_expression "(int *)(param_1 + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) ))) != (call_expression "SBORROW4(iVar4,uVar7)" identifier (argument_list "(iVar4,uVar7)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar4 - uVar7) < 0" (cast_expression "(int)(iVar4 - uVar7)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar4 - uVar7)" ( (binary_expression "iVar4 - uVar7" identifier - identifier) ))) < number_literal)) )) && (parenthesized_expression "(((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))" ( (parenthesized_expression "((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114)))" ( (binary_expression "(lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))" (parenthesized_expression "(lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0))" ( (binary_expression "lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)" (binary_expression "lVar25 != *(longlong *)(param_1 + 0x10c)" identifier != (pointer_expression "*(longlong *)(param_1 + 0x10c)" * (cast_expression "(longlong *)(param_1 + 0x10c)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) ))))) || (parenthesized_expression "(*(int *)(param_1 + 0x118) != 0)" ( (binary_expression "*(int *)(param_1 + 0x118) != 0" (pointer_expression "*(int *)(param_1 + 0x118)" * (cast_expression "(int *)(param_1 + 0x118)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(local_134 == *(int *)(param_1 + 0x114))" ( (binary_expression "local_134 == *(int *)(param_1 + 0x114)" identifier == (pointer_expression "*(int *)(param_1 + 0x114)" * (cast_expression "(int *)(param_1 + 0x114)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x114)" ( (binary_expression "param_1 + 0x114" identifier + number_literal) ))))) ))) )) ))) )) && (parenthesized_expression "(*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))" ( (binary_expression "*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104)" (pointer_expression "*(int *)(param_1 + 0x108)" * (cast_expression "(int *)(param_1 + 0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) <= (pointer_expression "*(int *)(param_1 + 0x104)" * (cast_expression "(int *)(param_1 + 0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x104)" ( (binary_expression "param_1 + 0x104" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "(local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)" ( (comma_expression "local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0" (assignment_expression "local_68 = (int *)FUN_0013aff0()" identifier = (cast_expression "(int *)FUN_0013aff0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013aff0()" identifier (argument_list "()" ( ))))) , (binary_expression "local_68 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }" { (expression_statement "*(longlong *)(param_1 + 0x10c) = lVar25;" (assignment_expression "*(longlong *)(param_1 + 0x10c) = lVar25" (pointer_expression "*(longlong *)(param_1 + 0x10c)" * (cast_expression "(longlong *)(param_1 + 0x10c)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x118) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x118) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x118)" * (cast_expression "(undefined4 *)(param_1 + 0x118)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x114) = local_134;" (assignment_expression "*(int *)(param_1 + 0x114) = local_134" (pointer_expression "*(int *)(param_1 + 0x114)" * (cast_expression "(int *)(param_1 + 0x114)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x114)" ( (binary_expression "param_1 + 0x114" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_68 = (int *)0x0;" (assignment_expression "local_68 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);" (call_expression "memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4)" identifier (argument_list "(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4)" ( identifier , number_literal , (binary_expression "*(int *)(param_1 + 0x18) * 4 + 4" (binary_expression "*(int *)(param_1 + 0x18) * 4" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) * number_literal) + number_literal) ))) ;) (expression_statement "piVar6 = __s_01;" (assignment_expression "piVar6 = __s_01" identifier = identifier) ;) (if_statement "if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }" if (parenthesized_expression "(local_68 == (int *)0x0)" ( (binary_expression "local_68 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }" { (expression_statement "iVar4 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "piVar6 = extraout_ECX_04;" (assignment_expression "piVar6 = extraout_ECX_04" identifier = identifier) ;) (if_statement "if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);" do (compound_statement "{\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                }" { (expression_statement "iVar9 = iVar18 + 1;" (assignment_expression "iVar9 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (if_statement "if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }" if (parenthesized_expression "(*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0')" ( (binary_expression "*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 0x20) + iVar18)" * (cast_expression "(char *)(*(int *)(param_1 + 0x20) + iVar18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x20) + iVar18)" ( (binary_expression "*(int *)(param_1 + 0x20) + iVar18" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }" { (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0007f6d0();" (call_expression "FUN_0007f6d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);" (assignment_expression "local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18)" identifier = (cast_expression "(int *)FUN_001223f0(iVar18,__s_01 + iVar18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001223f0(iVar18,__s_01 + iVar18)" identifier (argument_list "(iVar18,__s_01 + iVar18)" ( identifier , (binary_expression "__s_01 + iVar18" identifier + identifier) ))))) ;) (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar4 = FUN_0007f360();" (assignment_expression "iVar4 = FUN_0007f360()" identifier = (call_expression "FUN_0007f360()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar6 = __s_01;" (assignment_expression "piVar6 = __s_01" identifier = identifier) ;) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;" (assignment_expression "piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4" (subscript_expression "piVar6[*(int *)(param_1 + 0x18)]" identifier [ (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) ]) = (binary_expression "piVar6[*(int *)(param_1 + 0x18)] + iVar4" (subscript_expression "piVar6[*(int *)(param_1 + 0x18)]" identifier [ (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) ]) + identifier)) ;) (if_statement "if (local_68 != (int *)0x0) goto LAB_0013d062;" if (parenthesized_expression "(local_68 != (int *)0x0)" ( (binary_expression "local_68 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013d062;" goto statement_identifier ;)) (expression_statement "iVar4 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "__s_01 = piVar6;" (assignment_expression "__s_01 = piVar6" identifier = identifier) ;) })) (expression_statement "iVar18 = iVar9;" (assignment_expression "iVar18 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(iVar9 < iVar4)" ( (binary_expression "iVar9 < iVar4" identifier < identifier) )) ;) })) (if_statement "if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;" if (parenthesized_expression "(*(char *)(param_1 + 0xea) != '\0')" ( (binary_expression "*(char *)(param_1 + 0xea) != '\0'" (pointer_expression "*(char *)(param_1 + 0xea)" * (cast_expression "(char *)(param_1 + 0xea)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xea)" ( (binary_expression "param_1 + 0xea" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0013d0c3;" goto statement_identifier ;)) (labeled_statement "LAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);" statement_identifier : (expression_statement "local_f0 = (int *)((int)local_f0 + 1);" (assignment_expression "local_f0 = (int *)((int)local_f0 + 1)" identifier = (cast_expression "(int *)((int)local_f0 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_f0 + 1)" ( (binary_expression "(int)local_f0 + 1" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (if_statement "if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }" if (parenthesized_expression "(-1 < iVar4)" ( (binary_expression "-1 < iVar4" number_literal < identifier) )) (compound_statement "{\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));" do (compound_statement "{\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                }" { (expression_statement "__s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];" (assignment_expression "__s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4]" (subscript_expression "__s_00[iVar3 + iVar4 + 1]" identifier [ (binary_expression "iVar3 + iVar4 + 1" (binary_expression "iVar3 + iVar4" identifier + identifier) + number_literal) ]) = (binary_expression "__s_00[iVar3 + iVar4 + 1] + __s_01[iVar4]" (subscript_expression "__s_00[iVar3 + iVar4 + 1]" identifier [ (binary_expression "iVar3 + iVar4 + 1" (binary_expression "iVar3 + iVar4" identifier + identifier) + number_literal) ]) + (subscript_expression "__s_01[iVar4]" identifier [ identifier ]))) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "piVar6 = __s_01;" (assignment_expression "piVar6 = __s_01" identifier = identifier) ;) }) while (parenthesized_expression "(iVar4 <= *(int *)(param_1 + 0x18))" ( (binary_expression "iVar4 <= *(int *)(param_1 + 0x18)" identifier <= (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) ;) })) }) (else_clause "else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }" else (compound_statement "{\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }" { (labeled_statement "LAB_0013d062:\n              __s_01 = piVar6;" statement_identifier : (expression_statement "__s_01 = piVar6;" (assignment_expression "__s_01 = piVar6" identifier = identifier) ;)) (if_statement "if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }" if (parenthesized_expression "(*(char *)(param_1 + 0xea) != '\0')" ( (binary_expression "*(char *)(param_1 + 0xea) != '\0'" (pointer_expression "*(char *)(param_1 + 0xea)" * (cast_expression "(char *)(param_1 + 0xea)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xea)" ( (binary_expression "param_1 + 0xea" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }" { (labeled_statement "LAB_0013d0c3:\n                FUN_00111bd0();" statement_identifier : (expression_statement "FUN_00111bd0();" (call_expression "FUN_00111bd0()" identifier (argument_list "()" ( ))) ;)) (if_statement "if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }" if (parenthesized_expression "(local_68 == (int *)0x0)" ( (binary_expression "local_68 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }" { (expression_statement "iVar4 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "piVar6 = extraout_ECX_06;" (assignment_expression "piVar6 = extraout_ECX_06" identifier = identifier) ;) (goto_statement "goto LAB_0013d09a;" goto statement_identifier ;) })) })) (expression_statement "FUN_000c0450(local_58);" (call_expression "FUN_000c0450(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "local_58 = (int *)0x0;" (assignment_expression "local_58 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar6 = extraout_ECX_05;" (assignment_expression "piVar6 = extraout_ECX_05" identifier = identifier) ;) }))) })) }) (else_clause "else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }" else (compound_statement "{\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }" { (labeled_statement "LAB_0013d116:\n          local_108 = (int *)0x0;" statement_identifier : (expression_statement "local_108 = (int *)0x0;" (assignment_expression "local_108 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "__s_01 = (int *)0x0;" (assignment_expression "__s_01 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = (int *)0x0;" (assignment_expression "local_f0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (if_statement "if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }" if (parenthesized_expression "(*(char *)(param_1 + 0xe8) != '\0')" ( (binary_expression "*(char *)(param_1 + 0xe8) != '\0'" (pointer_expression "*(char *)(param_1 + 0xe8)" * (cast_expression "(char *)(param_1 + 0xe8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe8)" ( (binary_expression "param_1 + 0xe8" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }" { (expression_statement "FUN_00111db0(local_108,local_f0,piVar6,piVar6);" (call_expression "FUN_00111db0(local_108,local_f0,piVar6,piVar6)" identifier (argument_list "(local_108,local_f0,piVar6,piVar6)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "FUN_00044000(__s_01);" (call_expression "FUN_00044000(__s_01)" identifier (argument_list "(__s_01)" ( identifier ))) ;) (if_statement "if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }" if (parenthesized_expression "((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0))" ( (binary_expression "(local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)" (parenthesized_expression "(local_58 != (int *)0x0)" ( (binary_expression "local_58 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)" ( (comma_expression "piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0" (assignment_expression "piVar6 = (int *)FUN_000c0450(local_58)" identifier = (cast_expression "(int *)FUN_000c0450(local_58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000c0450(local_58)" identifier (argument_list "(local_58)" ( identifier ))))) , (binary_expression "local_68 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          local_68 = piVar6;\n        }" { (expression_statement "local_68 = piVar6;" (assignment_expression "local_68 = piVar6" identifier = identifier) ;) })) (expression_statement "local_f0 = local_68;" (assignment_expression "local_f0 = local_68" identifier = identifier) ;) }) (else_clause "else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }" else (compound_statement "{\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }" { (if_statement "if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }" if (parenthesized_expression "(iVar4 != 0xf)" ( (binary_expression "iVar4 != 0xf" identifier != number_literal) )) (compound_statement "{\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }" { (if_statement "if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }" if (parenthesized_expression "(6 < iVar4)" ( (binary_expression "6 < iVar4" number_literal < identifier) )) (compound_statement "{\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }" { (expression_statement "iVar18 = FUN_00044730();" (assignment_expression "iVar18 = FUN_00044730()" identifier = (call_expression "FUN_00044730()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar18 == 0) goto LAB_0013be74;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013be74;" goto statement_identifier ;)) (if_statement "if (10 < iVar4) goto LAB_0013c124;" if (parenthesized_expression "(10 < iVar4)" ( (binary_expression "10 < iVar4" number_literal < identifier) )) (goto_statement "goto LAB_0013c124;" goto statement_identifier ;)) })) (goto_statement "goto LAB_0013ba5f;" goto statement_identifier ;) })) (expression_statement "iVar4 = FUN_00044730();" (assignment_expression "iVar4 = FUN_00044730()" identifier = (call_expression "FUN_00044730()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }" { (expression_statement "local_f0 = (int *)FUN_00101610();" (assignment_expression "local_f0 = (int *)FUN_00101610()" identifier = (cast_expression "(int *)FUN_00101610()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00101610()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }" if (parenthesized_expression "(local_f0 == (int *)0x0)" ( (binary_expression "local_f0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }" { (expression_statement "FUN_00079e80();" (call_expression "FUN_00079e80()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00079e00();" (call_expression "FUN_00079e00()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) (do_statement "do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);" do (compound_statement "{\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            }" { (do_statement "do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);" do (compound_statement "{\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              }" { (expression_statement "iVar3 = FUN_000e7e00(0);" (assignment_expression "iVar3 = FUN_000e7e00(0)" identifier = (call_expression "FUN_000e7e00(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (if_statement "if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }" if (parenthesized_expression "(iVar3 != 100)" ( (binary_expression "iVar3 != 100" identifier != number_literal) )) (compound_statement "{\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }" { (expression_statement "local_f0 = (int *)FUN_000bfe40(0);" (assignment_expression "local_f0 = (int *)FUN_000bfe40(0)" identifier = (cast_expression "(int *)FUN_000bfe40(0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000bfe40(0)" identifier (argument_list "(0)" ( number_literal ))))) ;) (if_statement "if (local_f0 != (int *)0x0) goto LAB_0013c0e0;" if (parenthesized_expression "(local_f0 != (int *)0x0)" ( (binary_expression "local_f0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013c0e0;" goto statement_identifier ;)) (expression_statement "iVar3 = **(int **)(param_1 + 0x24);" (assignment_expression "iVar3 = **(int **)(param_1 + 0x24)" identifier = (pointer_expression "**(int **)(param_1 + 0x24)" * (pointer_expression "*(int **)(param_1 + 0x24)" * (cast_expression "(int **)(param_1 + 0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))))) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));" (assignment_expression "iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc))" identifier = (call_expression "FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc))" identifier (argument_list "(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc))" ( (binary_expression "unaff_EBP + 0x230e7" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0xdc)" * (cast_expression "(undefined4 *)(param_1 + 0xdc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xdc)" ( (binary_expression "param_1 + 0xdc" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }" { (expression_statement "local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);" (assignment_expression "local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0)" identifier = (cast_expression "(int *)FUN_00100700(0x80,0,&local_8c,0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00100700(0x80,0,&local_8c,0)" identifier (argument_list "(0x80,0,&local_8c,0)" ( number_literal , number_literal , (pointer_expression "&local_8c" & identifier) , number_literal ))))) ;) (expression_statement "FUN_00044000(iVar4);" (call_expression "FUN_00044000(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))) ;) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (expression_statement "piVar6 = local_f0;" (assignment_expression "piVar6 = local_f0" identifier = identifier) ;) (expression_statement "uVar5 = local_8c;" (assignment_expression "uVar5 = local_8c" identifier = identifier) ;) (if_statement "if (local_f0 != (int *)0x0) goto LAB_0013d4fe;" if (parenthesized_expression "(local_f0 != (int *)0x0)" ( (binary_expression "local_f0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013d4fe;" goto statement_identifier ;)) (goto_statement "goto LAB_0013d234;" goto statement_identifier ;) })) (expression_statement "FUN_000c0450(local_8c);" (call_expression "FUN_000c0450(local_8c)" identifier (argument_list "(local_8c)" ( identifier ))) ;) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (expression_statement "local_f0 = (int *)0x7;" (assignment_expression "local_f0 = (int *)0x7" identifier = (cast_expression "(int *)0x7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) })) (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar7 = FUN_00045540();" (assignment_expression "uVar7 = FUN_00045540()" identifier = (call_expression "FUN_00045540()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(*(int *)(param_1 + 0xfc) < 1)" ( (binary_expression "*(int *)(param_1 + 0xfc) < 1" (pointer_expression "*(int *)(param_1 + 0xfc)" * (cast_expression "(int *)(param_1 + 0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xfc)" ( (binary_expression "param_1 + 0xfc" identifier + number_literal) )))) < number_literal) )) ;) (expression_statement "local_114 = 0;" (assignment_expression "local_114 = 0" identifier = number_literal) ;) (expression_statement "local_110 = 0;" (assignment_expression "local_110 = 0" identifier = number_literal) ;) (do_statement "do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));" do (compound_statement "{\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              }" { (expression_statement "local_68 = (int *)0x0;" (assignment_expression "local_68 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "ppiVar21 = &local_58;" (assignment_expression "ppiVar21 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) (for_statement "for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }" for ( (assignment_expression "iVar3 = 0xe" identifier = number_literal) ; (binary_expression "iVar3 != 0" identifier != number_literal) ; (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ) (compound_statement "{\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }" { (expression_statement "*ppiVar21 = (int *)0x0;" (assignment_expression "*ppiVar21 = (int *)0x0" (pointer_expression "*ppiVar21" * identifier) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;" (assignment_expression "ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "ppiVar21 + (uint)bVar24 * -2 + 1" (binary_expression "ppiVar21 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_5c = 0x13;" (assignment_expression "local_5c = 0x13" identifier = number_literal) ;) (expression_statement "local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);" (assignment_expression "local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58)" identifier = (cast_expression "(int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58)" identifier (argument_list "(0xfffffffe,0,0,0,1,&local_58)" ( number_literal , number_literal , number_literal , number_literal , number_literal , (pointer_expression "&local_58" & identifier) ))))) ;) (if_statement "if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }" if (parenthesized_expression "((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0))" ( (binary_expression "(local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)" (parenthesized_expression "(local_12c == (int *)0x0)" ( (binary_expression "local_12c == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)" ( (comma_expression "local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0" (assignment_expression "local_4c = &local_68" identifier = (pointer_expression "&local_68" & identifier)) , (comma_expression "local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0" (assignment_expression "local_12c = (int *)FUN_0012cf60(local_64)" identifier = (cast_expression "(int *)FUN_0012cf60(local_64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012cf60(local_64)" identifier (argument_list "(local_64)" ( identifier ))))) , (binary_expression "local_12c == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }" { (expression_statement "local_104 = 0;" (assignment_expression "local_104 = 0" identifier = number_literal) ;) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();" statement_identifier : (expression_statement "local_12c = (int *)FUN_0012ba30();" (assignment_expression "local_12c = (int *)FUN_0012ba30()" identifier = (cast_expression "(int *)FUN_0012ba30()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012ba30()" identifier (argument_list "()" ( ))))) ;)) (expression_statement "iVar3 = local_28;" (assignment_expression "iVar3 = local_28" identifier = identifier) ;) (if_statement "if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }" if (parenthesized_expression "(local_12c == (int *)0x64)" ( (binary_expression "local_12c == (int *)0x64" identifier == (cast_expression "(int *)0x64" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }" { (expression_statement "local_84 = (char *)0x0;" (assignment_expression "local_84 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (expression_statement "local_7c[0] = 0;" (assignment_expression "local_7c[0] = 0" (subscript_expression "local_7c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19 = (byte *)(local_24 + local_28);" (assignment_expression "pbVar19 = (byte *)(local_24 + local_28)" identifier = (cast_expression "(byte *)(local_24 + local_28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + local_28)" ( (binary_expression "local_24 + local_28" identifier + identifier) )))) ;) (expression_statement "local_7c[1] = 0;" (assignment_expression "local_7c[1] = 0" (subscript_expression "local_7c[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar4 = FUN_0003e400();" (assignment_expression "iVar4 = FUN_0003e400()" identifier = (call_expression "FUN_0003e400()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "pbVar22 = (byte *)(iVar3 + iVar4);" (assignment_expression "pbVar22 = (byte *)(iVar3 + iVar4)" identifier = (cast_expression "(byte *)(iVar3 + iVar4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + iVar4)" ( (binary_expression "iVar3 + iVar4" identifier + identifier) )))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }" if (parenthesized_expression "(pbVar22 < pbVar19)" ( (binary_expression "pbVar22 < pbVar19" identifier < identifier) )) (compound_statement "{\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }" { (while_statement "while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }" { (expression_statement "local_7c[2] = (uint)*pbVar22;" (assignment_expression "local_7c[2] = (uint)*pbVar22" (subscript_expression "local_7c[2]" identifier [ number_literal ]) = (binary_expression "(uint)*pbVar22" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }" if (parenthesized_expression "((char)*pbVar22 < '\0')" ( (binary_expression "(char)*pbVar22 < '\0'" (cast_expression "(char)*pbVar22" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar22" * identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }" { (expression_statement "uVar10 = local_7c[2] & 0x7f;" (assignment_expression "uVar10 = local_7c[2] & 0x7f" identifier = (binary_expression "local_7c[2] & 0x7f" (subscript_expression "local_7c[2]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "uVar20 = (uint)pbVar22[1] << 7;" (assignment_expression "uVar20 = (uint)pbVar22[1] << 7" identifier = (binary_expression "(uint)pbVar22[1] << 7" (cast_expression "(uint)pbVar22[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar22[1]" identifier [ number_literal ])) << number_literal)) ;) (expression_statement "local_7c[2] = uVar20 | uVar10;" (assignment_expression "local_7c[2] = uVar20 | uVar10" (subscript_expression "local_7c[2]" identifier [ number_literal ]) = (binary_expression "uVar20 | uVar10" identifier | identifier)) ;) (if_statement "if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }" if (parenthesized_expression "((uVar20 & 0x4000) == 0)" ( (binary_expression "(uVar20 & 0x4000) == 0" (parenthesized_expression "(uVar20 & 0x4000)" ( (binary_expression "uVar20 & 0x4000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) (expression_statement "local_7c[3] = 0;" (assignment_expression "local_7c[3] = 0" (subscript_expression "local_7c[3]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }" else (compound_statement "{\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }" { (expression_statement "uVar10 = uVar20 & 0x3fff | uVar10;" (assignment_expression "uVar10 = uVar20 & 0x3fff | uVar10" identifier = (binary_expression "uVar20 & 0x3fff | uVar10" (binary_expression "uVar20 & 0x3fff" identifier & number_literal) | identifier)) ;) (expression_statement "uVar20 = (uint)pbVar22[2] << 0xe;" (assignment_expression "uVar20 = (uint)pbVar22[2] << 0xe" identifier = (binary_expression "(uint)pbVar22[2] << 0xe" (cast_expression "(uint)pbVar22[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar22[2]" identifier [ number_literal ])) << number_literal)) ;) (expression_statement "local_7c[2] = uVar10 | uVar20;" (assignment_expression "local_7c[2] = uVar10 | uVar20" (subscript_expression "local_7c[2]" identifier [ number_literal ]) = (binary_expression "uVar10 | uVar20" identifier | identifier)) ;) (if_statement "if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }" if (parenthesized_expression "((uVar20 & 0x200000) == 0)" ( (binary_expression "(uVar20 & 0x200000) == 0" (parenthesized_expression "(uVar20 & 0x200000)" ( (binary_expression "uVar20 & 0x200000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }" { (expression_statement "iVar4 = 3;" (assignment_expression "iVar4 = 3" identifier = number_literal) ;) (expression_statement "local_7c[3] = 0;" (assignment_expression "local_7c[3] = 0" (subscript_expression "local_7c[3]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }" else (compound_statement "{\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }" { (expression_statement "uVar10 = uVar10 | uVar20 & 0x1fffff;" (assignment_expression "uVar10 = uVar10 | uVar20 & 0x1fffff" identifier = (binary_expression "uVar10 | uVar20 & 0x1fffff" identifier | (binary_expression "uVar20 & 0x1fffff" identifier & number_literal))) ;) (expression_statement "uVar20 = (uint)pbVar22[3] << 0x15;" (assignment_expression "uVar20 = (uint)pbVar22[3] << 0x15" identifier = (binary_expression "(uint)pbVar22[3] << 0x15" (cast_expression "(uint)pbVar22[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar22[3]" identifier [ number_literal ])) << number_literal)) ;) (expression_statement "local_7c[2] = uVar10 | uVar20;" (assignment_expression "local_7c[2] = uVar10 | uVar20" (subscript_expression "local_7c[2]" identifier [ number_literal ]) = (binary_expression "uVar10 | uVar20" identifier | identifier)) ;) (if_statement "if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }" if (parenthesized_expression "((uVar20 & 0x10000000) == 0)" ( (binary_expression "(uVar20 & 0x10000000) == 0" (parenthesized_expression "(uVar20 & 0x10000000)" ( (binary_expression "uVar20 & 0x10000000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }" { (expression_statement "iVar4 = 4;" (assignment_expression "iVar4 = 4" identifier = number_literal) ;) (expression_statement "local_7c[3] = 0;" (assignment_expression "local_7c[3] = 0" (subscript_expression "local_7c[3]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }" else (compound_statement "{\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }" { (expression_statement "uVar10 = uVar10 | uVar20 & 0xfffffff;" (assignment_expression "uVar10 = uVar10 | uVar20 & 0xfffffff" identifier = (binary_expression "uVar10 | uVar20 & 0xfffffff" identifier | (binary_expression "uVar20 & 0xfffffff" identifier & number_literal))) ;) (expression_statement "uVar20 = pbVar22[4] & 0x7f;" (assignment_expression "uVar20 = pbVar22[4] & 0x7f" identifier = (binary_expression "pbVar22[4] & 0x7f" (subscript_expression "pbVar22[4]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "uVar11 = uVar20 * 0x10000000;" (assignment_expression "uVar11 = uVar20 * 0x10000000" identifier = (binary_expression "uVar20 * 0x10000000" identifier * number_literal)) ;) (expression_statement "local_7c[2] = uVar10 + uVar11;" (assignment_expression "local_7c[2] = uVar10 + uVar11" (subscript_expression "local_7c[2]" identifier [ number_literal ]) = (binary_expression "uVar10 + uVar11" identifier + identifier)) ;) (expression_statement "local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);" (assignment_expression "local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11)" (subscript_expression "local_7c[3]" identifier [ number_literal ]) = (binary_expression "(uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11)" (parenthesized_expression "(uVar20 >> 4)" ( (binary_expression "uVar20 >> 4" identifier >> number_literal) )) + (cast_expression "(uint)CARRY4(uVar10,uVar11)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar10,uVar11)" identifier (argument_list "(uVar10,uVar11)" ( identifier , identifier )))))) ;) (if_statement "if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }" if (parenthesized_expression "((char)pbVar22[4] < '\0')" ( (binary_expression "(char)pbVar22[4] < '\0'" (cast_expression "(char)pbVar22[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar22[4]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }" { (expression_statement "local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;" (assignment_expression "local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8" (subscript_expression "local_7c[3]" identifier [ number_literal ]) = (binary_expression "local_7c[3] + (pbVar22[5] & 0x7f) * 8" (subscript_expression "local_7c[3]" identifier [ number_literal ]) + (binary_expression "(pbVar22[5] & 0x7f) * 8" (parenthesized_expression "(pbVar22[5] & 0x7f)" ( (binary_expression "pbVar22[5] & 0x7f" (subscript_expression "pbVar22[5]" identifier [ number_literal ]) & number_literal) )) * number_literal))) ;) (if_statement "if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }" if (parenthesized_expression "((char)pbVar22[5] < '\0')" ( (binary_expression "(char)pbVar22[5] < '\0'" (cast_expression "(char)pbVar22[5]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar22[5]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }" { (expression_statement "local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;" (assignment_expression "local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400" (subscript_expression "local_7c[3]" identifier [ number_literal ]) = (binary_expression "local_7c[3] + (pbVar22[6] & 0x7f) * 0x400" (subscript_expression "local_7c[3]" identifier [ number_literal ]) + (binary_expression "(pbVar22[6] & 0x7f) * 0x400" (parenthesized_expression "(pbVar22[6] & 0x7f)" ( (binary_expression "pbVar22[6] & 0x7f" (subscript_expression "pbVar22[6]" identifier [ number_literal ]) & number_literal) )) * number_literal))) ;) (if_statement "if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }" if (parenthesized_expression "((char)pbVar22[6] < '\0')" ( (binary_expression "(char)pbVar22[6] < '\0'" (cast_expression "(char)pbVar22[6]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar22[6]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }" { (expression_statement "local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;" (assignment_expression "local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000" (subscript_expression "local_7c[3]" identifier [ number_literal ]) = (binary_expression "local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000" (subscript_expression "local_7c[3]" identifier [ number_literal ]) + (binary_expression "(pbVar22[7] & 0x7f) * 0x20000" (parenthesized_expression "(pbVar22[7] & 0x7f)" ( (binary_expression "pbVar22[7] & 0x7f" (subscript_expression "pbVar22[7]" identifier [ number_literal ]) & number_literal) )) * number_literal))) ;) (if_statement "if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }" if (parenthesized_expression "((char)pbVar22[7] < '\0')" ( (binary_expression "(char)pbVar22[7] < '\0'" (cast_expression "(char)pbVar22[7]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar22[7]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }" { (expression_statement "local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;" (assignment_expression "local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000" (subscript_expression "local_7c[3]" identifier [ number_literal ]) = (binary_expression "local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000" (subscript_expression "local_7c[3]" identifier [ number_literal ]) + (binary_expression "(pbVar22[8] & 0x7f) * 0x1000000" (parenthesized_expression "(pbVar22[8] & 0x7f)" ( (binary_expression "pbVar22[8] & 0x7f" (subscript_expression "pbVar22[8]" identifier [ number_literal ]) & number_literal) )) * number_literal))) ;) (if_statement "if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }" if (parenthesized_expression "((char)pbVar22[8] < '\0')" ( (binary_expression "(char)pbVar22[8] < '\0'" (cast_expression "(char)pbVar22[8]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar22[8]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }" { (expression_statement "pbVar16 = pbVar22 + 10;" (assignment_expression "pbVar16 = pbVar22 + 10" identifier = (binary_expression "pbVar22 + 10" identifier + number_literal)) ;) (expression_statement "local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;" (assignment_expression "local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000" (subscript_expression "local_7c[3]" identifier [ number_literal ]) = (binary_expression "local_7c[3] + (uint)pbVar22[9] * -0x80000000" (subscript_expression "local_7c[3]" identifier [ number_literal ]) + (binary_expression "(uint)pbVar22[9] * -0x80000000" (cast_expression "(uint)pbVar22[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar22[9]" identifier [ number_literal ])) * number_literal))) ;) }) (else_clause "else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }" else (compound_statement "{\n                                          pbVar16 = pbVar22 + 9;\n                                        }" { (expression_statement "pbVar16 = pbVar22 + 9;" (assignment_expression "pbVar16 = pbVar22 + 9" identifier = (binary_expression "pbVar22 + 9" identifier + number_literal)) ;) }))) }) (else_clause "else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }" else (compound_statement "{\n                                        pbVar16 = pbVar22 + 8;\n                                      }" { (expression_statement "pbVar16 = pbVar22 + 8;" (assignment_expression "pbVar16 = pbVar22 + 8" identifier = (binary_expression "pbVar22 + 8" identifier + number_literal)) ;) }))) }) (else_clause "else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }" else (compound_statement "{\n                                      pbVar16 = pbVar22 + 7;\n                                    }" { (expression_statement "pbVar16 = pbVar22 + 7;" (assignment_expression "pbVar16 = pbVar22 + 7" identifier = (binary_expression "pbVar22 + 7" identifier + number_literal)) ;) }))) }) (else_clause "else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }" else (compound_statement "{\n                                    pbVar16 = pbVar22 + 6;\n                                  }" { (expression_statement "pbVar16 = pbVar22 + 6;" (assignment_expression "pbVar16 = pbVar22 + 6" identifier = (binary_expression "pbVar22 + 6" identifier + number_literal)) ;) }))) }) (else_clause "else {\n                                  pbVar16 = pbVar22 + 5;\n                                }" else (compound_statement "{\n                                  pbVar16 = pbVar22 + 5;\n                                }" { (expression_statement "pbVar16 = pbVar22 + 5;" (assignment_expression "pbVar16 = pbVar22 + 5" identifier = (binary_expression "pbVar22 + 5" identifier + number_literal)) ;) }))) (expression_statement "iVar4 = (int)pbVar16 - (int)pbVar22;" (assignment_expression "iVar4 = (int)pbVar16 - (int)pbVar22" identifier = (binary_expression "(int)pbVar16 - (int)pbVar22" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar22" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }))) }))) }))) }) (else_clause "else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }" else (compound_statement "{\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (expression_statement "local_7c[3] = 0;" (assignment_expression "local_7c[3] = 0" (subscript_expression "local_7c[3]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "pbVar22 = pbVar22 + iVar4;" (assignment_expression "pbVar22 = pbVar22 + iVar4" identifier = (binary_expression "pbVar22 + iVar4" identifier + identifier)) ;) (if_statement "if (pbVar19 <= pbVar22) break;" if (parenthesized_expression "(pbVar19 <= pbVar22)" ( (binary_expression "pbVar19 <= pbVar22" identifier <= identifier) )) (break_statement "break;" break ;)) (if_statement "if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }" if (parenthesized_expression "(local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3])" ( (binary_expression "local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]" (binary_expression "local_7c[3] == 0" (subscript_expression "local_7c[3]" identifier [ number_literal ]) == number_literal) && (binary_expression "(uint)(1 < local_7c[2]) <= -local_7c[3]" (call_expression "(uint)(1 < local_7c[2])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < local_7c[2])" ( (binary_expression "1 < local_7c[2]" number_literal < (subscript_expression "local_7c[2]" identifier [ number_literal ])) ))) <= (unary_expression "-local_7c[3]" - (subscript_expression "local_7c[3]" identifier [ number_literal ])))) )) (compound_statement "{\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }" { (expression_statement "local_7c[0] = 0;" (assignment_expression "local_7c[0] = 0" (subscript_expression "local_7c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_7c[1] = 0;" (assignment_expression "local_7c[1] = 0" (subscript_expression "local_7c[1]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }" if (parenthesized_expression "(local_7c[3] == 0 && local_7c[2] == 0)" ( (binary_expression "local_7c[3] == 0 && local_7c[2] == 0" (binary_expression "local_7c[3] == 0" (subscript_expression "local_7c[3]" identifier [ number_literal ]) == number_literal) && (binary_expression "local_7c[2] == 0" (subscript_expression "local_7c[2]" identifier [ number_literal ]) == number_literal)) )) (compound_statement "{\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }" { (expression_statement "iVar3 = FUN_0003e400(uVar28,iVar3);" (assignment_expression "iVar3 = FUN_0003e400(uVar28,iVar3)" identifier = (call_expression "FUN_0003e400(uVar28,iVar3)" identifier (argument_list "(uVar28,iVar3)" ( identifier , identifier )))) ;) (expression_statement "bVar23 = CARRY4((uint)local_84,local_7c[2]);" (assignment_expression "bVar23 = CARRY4((uint)local_84,local_7c[2])" identifier = (call_expression "CARRY4((uint)local_84,local_7c[2])" identifier (argument_list "((uint)local_84,local_7c[2])" ( (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier) , (subscript_expression "local_7c[2]" identifier [ number_literal ]) )))) ;) (expression_statement "local_84 = local_84 + local_7c[2];" (assignment_expression "local_84 = local_84 + local_7c[2]" identifier = (binary_expression "local_84 + local_7c[2]" identifier + (subscript_expression "local_7c[2]" identifier [ number_literal ]))) ;) (expression_statement "local_80 = local_80 + local_7c[3] + (uint)bVar23;" (assignment_expression "local_80 = local_80 + local_7c[3] + (uint)bVar23" identifier = (binary_expression "local_80 + local_7c[3] + (uint)bVar23" (binary_expression "local_80 + local_7c[3]" identifier + (subscript_expression "local_7c[3]" identifier [ number_literal ])) + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) (else_clause "else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }" else (compound_statement "{\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }" { (expression_statement "iVar3 = FUN_0003e400(uVar28,iVar3);" (assignment_expression "iVar3 = FUN_0003e400(uVar28,iVar3)" identifier = (call_expression "FUN_0003e400(uVar28,iVar3)" identifier (argument_list "(uVar28,iVar3)" ( identifier , identifier )))) ;) }))) (expression_statement "pbVar22 = pbVar22 + iVar3;" (assignment_expression "pbVar22 = pbVar22 + iVar3" identifier = (binary_expression "pbVar22 + iVar3" identifier + identifier)) ;) (if_statement "if (pbVar19 <= pbVar22) break;" if (parenthesized_expression "(pbVar19 <= pbVar22)" ( (binary_expression "pbVar19 <= pbVar22" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }" else (compound_statement "{\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }" { (expression_statement "bVar23 = CARRY4(uVar28,local_7c[2] - 2);" (assignment_expression "bVar23 = CARRY4(uVar28,local_7c[2] - 2)" identifier = (call_expression "CARRY4(uVar28,local_7c[2] - 2)" identifier (argument_list "(uVar28,local_7c[2] - 2)" ( identifier , (binary_expression "local_7c[2] - 2" (subscript_expression "local_7c[2]" identifier [ number_literal ]) - number_literal) )))) ;) (expression_statement "uVar28 = uVar28 + (local_7c[2] - 2);" (assignment_expression "uVar28 = uVar28 + (local_7c[2] - 2)" identifier = (binary_expression "uVar28 + (local_7c[2] - 2)" identifier + (parenthesized_expression "(local_7c[2] - 2)" ( (binary_expression "local_7c[2] - 2" (subscript_expression "local_7c[2]" identifier [ number_literal ]) - number_literal) )))) ;) (expression_statement "iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;" (assignment_expression "iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23" identifier = (binary_expression "iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23" (binary_expression "iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2])" (binary_expression "iVar3 + local_7c[3] + -1" (binary_expression "iVar3 + local_7c[3]" identifier + (subscript_expression "local_7c[3]" identifier [ number_literal ])) + number_literal) + (call_expression "(uint)(1 < local_7c[2])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < local_7c[2])" ( (binary_expression "1 < local_7c[2]" number_literal < (subscript_expression "local_7c[2]" identifier [ number_literal ])) )))) + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar20 = (int)local_84 * 9 + uVar7;" (assignment_expression "uVar20 = (int)local_84 * 9 + uVar7" identifier = (binary_expression "(int)local_84 * 9 + uVar7" (binary_expression "(int)local_84 * 9" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + identifier)) ;) (expression_statement "iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);" (assignment_expression "iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7)" identifier = (binary_expression "local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7)" (binary_expression "local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f)" (binary_expression "local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8)" (binary_expression "local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d)" identifier + (parenthesized_expression "(local_80 << 3 | (uint)local_84 >> 0x1d)" ( (binary_expression "local_80 << 3 | (uint)local_84 >> 0x1d" (binary_expression "local_80 << 3" identifier << number_literal) | (binary_expression "(uint)local_84 >> 0x1d" (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ))) + (cast_expression "(uint)CARRY4((uint)local_84,(int)local_84 * 8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_84,(int)local_84 * 8)" identifier (argument_list "((uint)local_84,(int)local_84 * 8)" ( (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier) , (binary_expression "(int)local_84 * 8" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) + (parenthesized_expression "((int)uVar7 >> 0x1f)" ( (binary_expression "(int)uVar7 >> 0x1f" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4((int)local_84 * 9,uVar7)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((int)local_84 * 9,uVar7)" identifier (argument_list "((int)local_84 * 9,uVar7)" ( (binary_expression "(int)local_84 * 9" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) , identifier )))))) ;) (expression_statement "uVar10 = uVar20 * 9 + local_114;" (assignment_expression "uVar10 = uVar20 * 9 + local_114" identifier = (binary_expression "uVar20 * 9 + local_114" (binary_expression "uVar20 * 9" identifier * number_literal) + identifier)) ;) (expression_statement "iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);" (assignment_expression "iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114)" identifier = (binary_expression "(iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114)" (binary_expression "(iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110" (binary_expression "(iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20)" (binary_expression "(iVar4 * 8 | uVar20 >> 0x1d) + iVar4" (parenthesized_expression "(iVar4 * 8 | uVar20 >> 0x1d)" ( (binary_expression "iVar4 * 8 | uVar20 >> 0x1d" (binary_expression "iVar4 * 8" identifier * number_literal) | (binary_expression "uVar20 >> 0x1d" identifier >> number_literal)) )) + identifier) + (cast_expression "(uint)CARRY4(uVar20 * 8,uVar20)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar20 * 8,uVar20)" identifier (argument_list "(uVar20 * 8,uVar20)" ( (binary_expression "uVar20 * 8" identifier * number_literal) , identifier ))))) + identifier) + (cast_expression "(uint)CARRY4(uVar20 * 9,local_114)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar20 * 9,local_114)" identifier (argument_list "(uVar20 * 9,local_114)" ( (binary_expression "uVar20 * 9" identifier * number_literal) , identifier )))))) ;) (expression_statement "uVar20 = uVar10 * 8 + uVar10 + local_7c[0];" (assignment_expression "uVar20 = uVar10 * 8 + uVar10 + local_7c[0]" identifier = (binary_expression "uVar10 * 8 + uVar10 + local_7c[0]" (binary_expression "uVar10 * 8 + uVar10" (binary_expression "uVar10 * 8" identifier * number_literal) + identifier) + (subscript_expression "local_7c[0]" identifier [ number_literal ]))) ;) (expression_statement "iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);" (assignment_expression "iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0])" identifier = (binary_expression "(iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0])" (binary_expression "(iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0])" (binary_expression "(iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f)" (binary_expression "(iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4" (parenthesized_expression "(iVar4 * 8 | uVar10 >> 0x1d)" ( (binary_expression "iVar4 * 8 | uVar10 >> 0x1d" (binary_expression "iVar4 * 8" identifier * number_literal) | (binary_expression "uVar10 >> 0x1d" identifier >> number_literal)) )) + identifier) + (parenthesized_expression "((int)local_7c[0] >> 0x1f)" ( (binary_expression "(int)local_7c[0] >> 0x1f" (cast_expression "(int)local_7c[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_7c[0]" identifier [ number_literal ])) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar10,local_7c[0])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar10,local_7c[0])" identifier (argument_list "(uVar10,local_7c[0])" ( identifier , (subscript_expression "local_7c[0]" identifier [ number_literal ]) ))))) + (cast_expression "(uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar10 * 8,uVar10 + local_7c[0])" identifier (argument_list "(uVar10 * 8,uVar10 + local_7c[0])" ( (binary_expression "uVar10 * 8" identifier * number_literal) , (binary_expression "uVar10 + local_7c[0]" identifier + (subscript_expression "local_7c[0]" identifier [ number_literal ])) )))))) ;) (expression_statement "uVar10 = uVar28 + uVar20 * 9;" (assignment_expression "uVar10 = uVar28 + uVar20 * 9" identifier = (binary_expression "uVar28 + uVar20 * 9" identifier + (binary_expression "uVar20 * 9" identifier * number_literal))) ;) (expression_statement "uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;" (assignment_expression "uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)" identifier = (binary_expression "((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)" (binary_expression "((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8)" (binary_expression "((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d)" (binary_expression "((int)uVar28 >> 0x1f) +\n                                   iVar4" (parenthesized_expression "((int)uVar28 >> 0x1f)" ( (binary_expression "(int)uVar28 >> 0x1f" (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + identifier) + (parenthesized_expression "(iVar4 * 8 | uVar20 >> 0x1d)" ( (binary_expression "iVar4 * 8 | uVar20 >> 0x1d" (binary_expression "iVar4 * 8" identifier * number_literal) | (binary_expression "uVar20 >> 0x1d" identifier >> number_literal)) ))) + (cast_expression "(uint)CARRY4(uVar20,uVar20 * 8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar20,uVar20 * 8)" identifier (argument_list "(uVar20,uVar20 * 8)" ( identifier , (binary_expression "uVar20 * 8" identifier * number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar28,uVar20 * 9)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar28,uVar20 * 9)" identifier (argument_list "(uVar28,uVar20 * 9)" ( identifier , (binary_expression "uVar20 * 9" identifier * number_literal) )))))) ;) (if_statement "if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }" if (parenthesized_expression "(0 < local_2c)" ( (binary_expression "0 < local_2c" number_literal < identifier) )) (compound_statement "{\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }" { (expression_statement "pcVar15 = local_30;" (assignment_expression "pcVar15 = local_30" identifier = identifier) ;) (do_statement "do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);" do (compound_statement "{\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            }" { (expression_statement "uVar17 = (uint)*pcVar15;" (assignment_expression "uVar17 = (uint)*pcVar15" identifier = (binary_expression "(uint)*pcVar15" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "uVar12 = uVar10 * 8;" (assignment_expression "uVar12 = uVar10 * 8" identifier = (binary_expression "uVar10 * 8" identifier * number_literal)) ;) (expression_statement "uVar11 = uVar10 >> 0x1d;" (assignment_expression "uVar11 = uVar10 >> 0x1d" identifier = (binary_expression "uVar10 >> 0x1d" identifier >> number_literal)) ;) (expression_statement "uVar13 = uVar12 + uVar17;" (assignment_expression "uVar13 = uVar12 + uVar17" identifier = (binary_expression "uVar12 + uVar17" identifier + identifier)) ;) (expression_statement "bVar23 = CARRY4(uVar10,uVar13);" (assignment_expression "bVar23 = CARRY4(uVar10,uVar13)" identifier = (call_expression "CARRY4(uVar10,uVar13)" identifier (argument_list "(uVar10,uVar13)" ( identifier , identifier )))) ;) (expression_statement "uVar10 = uVar10 + uVar13;" (assignment_expression "uVar10 = uVar10 + uVar13" identifier = (binary_expression "uVar10 + uVar13" identifier + identifier)) ;) (expression_statement "uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;" (assignment_expression "uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23" identifier = (binary_expression "uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23" (binary_expression "uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17)" (binary_expression "uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f)" (binary_expression "uVar20 + (uVar20 << 3 | uVar11)" identifier + (parenthesized_expression "(uVar20 << 3 | uVar11)" ( (binary_expression "uVar20 << 3 | uVar11" (binary_expression "uVar20 << 3" identifier << number_literal) | identifier) ))) + (parenthesized_expression "((int)uVar17 >> 0x1f)" ( (binary_expression "(int)uVar17 >> 0x1f" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar12,uVar17)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar12,uVar17)" identifier (argument_list "(uVar12,uVar17)" ( identifier , identifier ))))) + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_30 + local_2c != pcVar15)" ( (binary_expression "local_30 + local_2c != pcVar15" (binary_expression "local_30 + local_2c" identifier + identifier) != identifier) )) ;) })) (expression_statement "local_104 = local_104 ^ uVar10;" (assignment_expression "local_104 = local_104 ^ uVar10" identifier = (binary_expression "local_104 ^ uVar10" identifier ^ identifier)) ;) (expression_statement "local_100 = local_100 ^ uVar20;" (assignment_expression "local_100 = local_100 ^ uVar20" identifier = (binary_expression "local_100 ^ uVar20" identifier ^ identifier)) ;) }))) })) })) (goto_statement "goto LAB_0013c8a0;" goto statement_identifier ;) })) (expression_statement "local_d0 = local_d0 ^ local_104;" (assignment_expression "local_d0 = local_d0 ^ local_104" identifier = (binary_expression "local_d0 ^ local_104" identifier ^ identifier)) ;) (expression_statement "local_b4 = local_b4 ^ local_100;" (assignment_expression "local_b4 = local_b4 ^ local_100" identifier = (binary_expression "local_b4 ^ local_100" identifier ^ identifier)) ;) })) (expression_statement "piVar6 = local_58;" (assignment_expression "piVar6 = local_58" identifier = identifier) ;) (if_statement "if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }" if (parenthesized_expression "(0 < local_54)" ( (binary_expression "0 < local_54" number_literal < identifier) )) (compound_statement "{\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = local_54;" (assignment_expression "iVar3 = local_54" identifier = identifier) ;) (do_statement "do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);" do (compound_statement "{\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  }" { (while_statement "while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }" while (parenthesized_expression "(iVar18 = piVar6[iVar4], iVar18 == 0)" ( (comma_expression "iVar18 = piVar6[iVar4], iVar18 == 0" (assignment_expression "iVar18 = piVar6[iVar4]" identifier = (subscript_expression "piVar6[iVar4]" identifier [ identifier ])) , (binary_expression "iVar18 == 0" identifier == number_literal)) )) (compound_statement "{\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }" { (labeled_statement "LAB_0013c4bb:\n                      iVar4 = iVar4 + 1;" statement_identifier : (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;)) (if_statement "if (iVar3 <= iVar4) goto LAB_0013c5e2;" if (parenthesized_expression "(iVar3 <= iVar4)" ( (binary_expression "iVar3 <= iVar4" identifier <= identifier) )) (goto_statement "goto LAB_0013c5e2;" goto statement_identifier ;)) })) (if_statement "if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }" if (parenthesized_expression "((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0))" ( (binary_expression "(*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)" (parenthesized_expression "(*(int *)(iVar18 + 0x38) == 0)" ( (binary_expression "*(int *)(iVar18 + 0x38) == 0" (pointer_expression "*(int *)(iVar18 + 0x38)" * (cast_expression "(int *)(iVar18 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x38)" ( (binary_expression "iVar18 + 0x38" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)" ( (comma_expression "iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0" (assignment_expression "iVar3 = *(int *)(iVar18 + 0x40)" identifier = (pointer_expression "*(int *)(iVar18 + 0x40)" * (cast_expression "(int *)(iVar18 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x40)" ( (binary_expression "iVar18 + 0x40" identifier + number_literal) ))))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }" { (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) == 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" * (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7fb7a)" ( (binary_expression "unaff_EBP + 0x7fb7a" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier ))) ;) }) (else_clause "else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }" else (compound_statement "{\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }" { (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" * (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbd6)" ( (binary_expression "unaff_EBP + 0x7fbd6" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);" (assignment_expression "iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" * (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbb2)" ( (binary_expression "unaff_EBP + 0x7fbb2" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar9" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) - identifier)) ;) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier ))) ;) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" * (cast_expression "(code **)(unaff_EBP + 0x7fbde)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbde)" ( (binary_expression "unaff_EBP + 0x7fbde" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) }))) })) (if_statement "if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }" if (parenthesized_expression "((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0))" ( (binary_expression "(*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)" (parenthesized_expression "(*(char *)(iVar18 + 5) == '\0')" ( (binary_expression "*(char *)(iVar18 + 5) == '\0'" (pointer_expression "*(char *)(iVar18 + 5)" * (cast_expression "(char *)(iVar18 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 5)" ( (binary_expression "iVar18 + 5" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)" ( (comma_expression "iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0" (assignment_expression "iVar3 = *(int *)(iVar18 + 0x28)" identifier = (pointer_expression "*(int *)(iVar18 + 0x28)" * (cast_expression "(int *)(iVar18 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x28)" ( (binary_expression "iVar18 + 0x28" identifier + number_literal) ))))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }" { (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) == 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" * (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7fb7a)" ( (binary_expression "unaff_EBP + 0x7fb7a" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier ))) ;) }) (else_clause "else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }" else (compound_statement "{\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }" { (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" * (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbd6)" ( (binary_expression "unaff_EBP + 0x7fbd6" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);" (assignment_expression "iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" * (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbb2)" ( (binary_expression "unaff_EBP + 0x7fbb2" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar9" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) - identifier)) ;) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier ))) ;) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" * (cast_expression "(code **)(unaff_EBP + 0x7fbde)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbde)" ( (binary_expression "unaff_EBP + 0x7fbde" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) }))) })) (expression_statement "iVar3 = *(int *)(iVar18 + 0x34);" (assignment_expression "iVar3 = *(int *)(iVar18 + 0x34)" identifier = (pointer_expression "*(int *)(iVar18 + 0x34)" * (cast_expression "(int *)(iVar18 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x34)" ( (binary_expression "iVar18 + 0x34" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }" { (expression_statement "iVar9 = *(int *)(iVar3 + 0x14);" (assignment_expression "iVar9 = *(int *)(iVar3 + 0x14)" identifier = (pointer_expression "*(int *)(iVar3 + 0x14)" * (cast_expression "(int *)(iVar3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }" if (parenthesized_expression "(*(int *)(iVar9 + 0xc) != 0)" ( (binary_expression "*(int *)(iVar9 + 0xc) != 0" (pointer_expression "*(int *)(iVar9 + 0xc)" * (cast_expression "(int *)(iVar9 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" * (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbd6)" ( (binary_expression "unaff_EBP + 0x7fbd6" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar9 + 0xc))" ( (pointer_expression "*(int *)(iVar9 + 0xc)" * (cast_expression "(int *)(iVar9 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) ))) ;) })) (expression_statement "FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));" (call_expression "FUN_000c0450(*(undefined4 *)(iVar3 + 0x10))" identifier (argument_list "(*(undefined4 *)(iVar3 + 0x10))" ( (pointer_expression "*(undefined4 *)(iVar3 + 0x10)" * (cast_expression "(undefined4 *)(iVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) ))) ;) (if_statement "if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }" if (parenthesized_expression "(*(int *)(iVar9 + 0x1e0) == 0)" ( (binary_expression "*(int *)(iVar9 + 0x1e0) == 0" (pointer_expression "*(int *)(iVar9 + 0x1e0)" * (cast_expression "(int *)(iVar9 + 0x1e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1e0)" ( (binary_expression "iVar9 + 0x1e0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }" { (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) == 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" * (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7fb7a)" ( (binary_expression "unaff_EBP + 0x7fb7a" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier ))) ;) }) (else_clause "else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }" else (compound_statement "{\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }" { (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" * (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbd6)" ( (binary_expression "unaff_EBP + 0x7fbd6" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);" (assignment_expression "iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" * (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbb2)" ( (binary_expression "unaff_EBP + 0x7fbb2" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar8" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) - identifier)) ;) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier ))) ;) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" * (cast_expression "(code **)(unaff_EBP + 0x7fbde)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbde)" ( (binary_expression "unaff_EBP + 0x7fbde" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) }))) }) (else_clause "else {\n                        FUN_0003a540();\n                      }" else (compound_statement "{\n                        FUN_0003a540();\n                      }" { (expression_statement "FUN_0003a540();" (call_expression "FUN_0003a540()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }" if (parenthesized_expression "(*(int *)(iVar9 + 0xc) != 0)" ( (binary_expression "*(int *)(iVar9 + 0xc) != 0" (pointer_expression "*(int *)(iVar9 + 0xc)" * (cast_expression "(int *)(iVar9 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" * (cast_expression "(code **)(unaff_EBP + 0x7fbde)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbde)" ( (binary_expression "unaff_EBP + 0x7fbde" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar9 + 0xc))" ( (pointer_expression "*(int *)(iVar9 + 0xc)" * (cast_expression "(int *)(iVar9 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) ))) ;) })) })) (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" * (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7fb7a)" ( (binary_expression "unaff_EBP + 0x7fb7a" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }" { (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" * (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbd6)" ( (binary_expression "unaff_EBP + 0x7fbd6" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);" (assignment_expression "iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(iVar18)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" * (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbb2)" ( (binary_expression "unaff_EBP + 0x7fbb2" identifier + number_literal) ))))) )) (argument_list "(iVar18)" ( identifier )))) ;) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar3" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) - identifier)) ;) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar18);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar18)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(iVar18)" ( identifier ))) ;) (expression_statement "iVar3 = local_54;" (assignment_expression "iVar3 = local_54" identifier = identifier) ;) (expression_statement "piVar6 = local_58;" (assignment_expression "piVar6 = local_58" identifier = identifier) ;) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" * (cast_expression "(code **)(unaff_EBP + 0x7fbde)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbde)" ( (binary_expression "unaff_EBP + 0x7fbde" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) (expression_statement "iVar3 = local_54;" (assignment_expression "iVar3 = local_54" identifier = identifier) ;) (expression_statement "piVar6 = local_58;" (assignment_expression "piVar6 = local_58" identifier = identifier) ;) })) (goto_statement "goto LAB_0013c4bb;" goto statement_identifier ;) })) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar18);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar18)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(iVar18)" ( identifier ))) ;) (expression_statement "iVar3 = local_54;" (assignment_expression "iVar3 = local_54" identifier = identifier) ;) (expression_statement "piVar6 = local_58;" (assignment_expression "piVar6 = local_58" identifier = identifier) ;) }) while (parenthesized_expression "(iVar4 < local_54)" ( (binary_expression "iVar4 < local_54" identifier < identifier) )) ;) })) (labeled_statement "LAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }" statement_identifier : (if_statement "if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }" { (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) == 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" * (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7fb7a)" ( (binary_expression "unaff_EBP + 0x7fb7a" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(piVar6);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(piVar6)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(piVar6)" ( identifier ))) ;) }) (else_clause "else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }" else (compound_statement "{\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }" { (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" * (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbd6)" ( (binary_expression "unaff_EBP + 0x7fbd6" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);" (assignment_expression "iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(piVar6)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" * (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbb2)" ( (binary_expression "unaff_EBP + 0x7fbb2" identifier + number_literal) ))))) )) (argument_list "(piVar6)" ( identifier )))) ;) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar3" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) - identifier)) ;) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(piVar6);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(piVar6)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(piVar6)" ( identifier ))) ;) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" * (cast_expression "(code **)(unaff_EBP + 0x7fbde)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbde)" ( (binary_expression "unaff_EBP + 0x7fbde" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) }))) }))) (expression_statement "iVar3 = local_48;" (assignment_expression "iVar3 = local_48" identifier = identifier) ;) (if_statement "if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }" if (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) (compound_statement "{\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }" { (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) == 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" * (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7fb7a)" ( (binary_expression "unaff_EBP + 0x7fb7a" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(local_48);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(local_48)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(local_48)" ( identifier ))) ;) }) (else_clause "else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }" else (compound_statement "{\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }" { (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" * (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbd6)" ( (binary_expression "unaff_EBP + 0x7fbd6" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);" (assignment_expression "iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" * (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbb2)" ( (binary_expression "unaff_EBP + 0x7fbb2" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar4" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) - identifier)) ;) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier ))) ;) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" * (cast_expression "(code **)(unaff_EBP + 0x7fbde)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbde)" ( (binary_expression "unaff_EBP + 0x7fbde" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) }))) })) (expression_statement "bVar23 = 0xfffffffe < local_114;" (assignment_expression "bVar23 = 0xfffffffe < local_114" identifier = (binary_expression "0xfffffffe < local_114" number_literal < identifier)) ;) (expression_statement "local_114 = local_114 + 1;" (assignment_expression "local_114 = local_114 + 1" identifier = (binary_expression "local_114 + 1" identifier + number_literal)) ;) (expression_statement "local_110 = local_110 + (uint)bVar23;" (assignment_expression "local_110 = local_110 + (uint)bVar23" identifier = (binary_expression "local_110 + (uint)bVar23" identifier + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "((int)local_114 < *(int *)(param_1 + 0xfc))" ( (binary_expression "(int)local_114 < *(int *)(param_1 + 0xfc)" (cast_expression "(int)local_114" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(param_1 + 0xfc)" * (cast_expression "(int *)(param_1 + 0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xfc)" ( (binary_expression "param_1 + 0xfc" identifier + number_literal) ))))) )) ;) }) while (parenthesized_expression "(local_12c == (int *)0x0)" ( (binary_expression "local_12c == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "FUN_000bfe40(0);" (call_expression "FUN_000bfe40(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "local_f0 = local_12c;" (assignment_expression "local_f0 = local_12c" identifier = identifier) ;) })) }) (else_clause "else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }" else (compound_statement "{\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }" { (expression_statement "iVar4 = FUN_00044730();" (assignment_expression "iVar4 = FUN_00044730()" identifier = (call_expression "FUN_00044730()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 == 0) goto LAB_0013be74;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013be74;" goto statement_identifier ;)) (labeled_statement "LAB_0013c124:\n          iVar4 = FUN_00044730();" statement_identifier : (expression_statement "iVar4 = FUN_00044730();" (assignment_expression "iVar4 = FUN_00044730()" identifier = (call_expression "FUN_00044730()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar4 != 0) goto LAB_0013ba5f;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0013ba5f;" goto statement_identifier ;)) (expression_statement "local_68 = (int *)0x0;" (assignment_expression "local_68 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar15 = (char *)(iVar3 + 10);" (assignment_expression "pcVar15 = (char *)(iVar3 + 10)" identifier = (cast_expression "(char *)(iVar3 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 10)" ( (binary_expression "iVar3 + 10" identifier + number_literal) )))) ;) (expression_statement "local_58 = (int *)0x0;" (assignment_expression "local_58 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "cVar2 = *(char *)(iVar3 + 10);" (assignment_expression "cVar2 = *(char *)(iVar3 + 10)" identifier = (pointer_expression "*(char *)(iVar3 + 10)" * (cast_expression "(char *)(iVar3 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 10)" ( (binary_expression "iVar3 + 10" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }" if (parenthesized_expression "((byte)(cVar2 - 0x30U) < 10)" ( (binary_expression "(byte)(cVar2 - 0x30U) < 10" (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 - 0x30U)" ( (binary_expression "cVar2 - 0x30U" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }" { (do_statement "do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);" do (compound_statement "{\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            }" { (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = cVar2 + -0x30 + iVar3 * 10;" (assignment_expression "iVar3 = cVar2 + -0x30 + iVar3 * 10" identifier = (binary_expression "cVar2 + -0x30 + iVar3 * 10" (binary_expression "cVar2 + -0x30" identifier + number_literal) + (binary_expression "iVar3 * 10" identifier * number_literal))) ;) (expression_statement "cVar2 = *pcVar15;" (assignment_expression "cVar2 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (if_statement "if (9 < (byte)(cVar2 - 0x30U)) break;" if (parenthesized_expression "(9 < (byte)(cVar2 - 0x30U))" ( (binary_expression "9 < (byte)(cVar2 - 0x30U)" number_literal < (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 - 0x30U)" ( (binary_expression "cVar2 - 0x30U" identifier - number_literal) )))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(iVar3 < 0xccccccb)" ( (binary_expression "iVar3 < 0xccccccb" identifier < number_literal) )) ;) (if_statement "if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }" if (parenthesized_expression "((iVar3 == 1) || (0x10 < iVar3))" ( (binary_expression "(iVar3 == 1) || (0x10 < iVar3)" (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) || (parenthesized_expression "(0x10 < iVar3)" ( (binary_expression "0x10 < iVar3" number_literal < identifier) ))) )) (compound_statement "{\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }" { (expression_statement "*(undefined4 *)(param_1 + 0x30) = 8;" (assignment_expression "*(undefined4 *)(param_1 + 0x30) = 8" (pointer_expression "*(undefined4 *)(param_1 + 0x30)" * (cast_expression "(undefined4 *)(param_1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }" else (compound_statement "{\n              *(int *)(param_1 + 0x30) = iVar3;\n            }" { (expression_statement "*(int *)(param_1 + 0x30) = iVar3;" (assignment_expression "*(int *)(param_1 + 0x30) = iVar3" (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) }))) }) (else_clause "else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }" else (compound_statement "{\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }" { (expression_statement "*(undefined4 *)(param_1 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x30) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x30)" * (cast_expression "(undefined4 *)(param_1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = number_literal) ;) }))) (if_statement "if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }" if (parenthesized_expression "(*(char *)(param_1 + 0xe9) == '\0')" ( (binary_expression "*(char *)(param_1 + 0xe9) == '\0'" (pointer_expression "*(char *)(param_1 + 0xe9)" * (cast_expression "(char *)(param_1 + 0xe9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe9)" ( (binary_expression "param_1 + 0xe9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }" { (expression_statement "FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));" (call_expression "FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14))" identifier (argument_list "(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14))" ( (pointer_expression "&local_68" & identifier) , (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , (binary_expression "unaff_EBP + 0x324ae" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) ))) ;) (expression_statement "local_f0 = local_68;" (assignment_expression "local_f0 = local_68" identifier = identifier) ;) (if_statement "if (local_68 != (int *)0x0) goto LAB_0013c0e0;" if (parenthesized_expression "(local_68 != (int *)0x0)" ( (binary_expression "local_68 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013c0e0;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)(param_1 + 0xe9) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xe9) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xe9)" * (cast_expression "(undefined1 *)(param_1 + 0xe9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe9)" ( (binary_expression "param_1 + 0xe9" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "local_f0 = (int *)FUN_00101610();" (assignment_expression "local_f0 = (int *)FUN_00101610()" identifier = (cast_expression "(int *)FUN_00101610()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00101610()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_68 = local_f0;" (assignment_expression "local_68 = local_f0" identifier = identifier) ;) (if_statement "if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }" if (parenthesized_expression "(local_f0 == (int *)0x0)" ( (binary_expression "local_f0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }" { (expression_statement "FUN_00079e80();" (call_expression "FUN_00079e80()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00079e00();" (call_expression "FUN_00079e00()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000e7e00(local_58);" (call_expression "FUN_000e7e00(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "local_f0 = (int *)FUN_000bfe40(local_58);" (assignment_expression "local_f0 = (int *)FUN_000bfe40(local_58)" identifier = (cast_expression "(int *)FUN_000bfe40(local_58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000bfe40(local_58)" identifier (argument_list "(local_58)" ( identifier ))))) ;) })) }))) }))) (labeled_statement "LAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);" statement_identifier : (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) })) (expression_statement "piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4];" (assignment_expression "piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4]" identifier = (cast_expression "(int *)param_3[*(int *)(param_1 + 0x18) + 4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[*(int *)(param_1 + 0x18) + 4]" identifier [ (binary_expression "*(int *)(param_1 + 0x18) + 4" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) + number_literal) ]))) ;) (expression_statement "uVar1 = *(ushort *)(piVar6 + 2);" (assignment_expression "uVar1 = *(ushort *)(piVar6 + 2)" identifier = (pointer_expression "*(ushort *)(piVar6 + 2)" * (cast_expression "(ushort *)(piVar6 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 2)" ( (binary_expression "piVar6 + 2" identifier + number_literal) ))))) ;) (if_statement "if ((uVar1 & 4) == 0) {\n      if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }\n    }\n    else {\n      iVar3 = *piVar6;\n    }" if (parenthesized_expression "((uVar1 & 4) == 0)" ( (binary_expression "(uVar1 & 4) == 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }\n    }" { (if_statement "if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }" if (parenthesized_expression "((uVar1 & 8) == 0)" ( (binary_expression "(uVar1 & 8) == 0" (parenthesized_expression "(uVar1 & 8)" ( (binary_expression "uVar1 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }" { (if_statement "if ((uVar1 & 0x12) == 0) goto LAB_0013b900;" if (parenthesized_expression "((uVar1 & 0x12) == 0)" ( (binary_expression "(uVar1 & 0x12) == 0" (parenthesized_expression "(uVar1 & 0x12)" ( (binary_expression "uVar1 & 0x12" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0013b900;" goto statement_identifier ;)) (expression_statement "iVar3 = FUN_0003c930();" (assignment_expression "iVar3 = FUN_0003c930()" identifier = (call_expression "FUN_0003c930()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }" else (compound_statement "{\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }" { (expression_statement "iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);" (assignment_expression "iVar3 = FUN_0003c8b0(*piVar6,piVar6[1])" identifier = (call_expression "FUN_0003c8b0(*piVar6,piVar6[1])" identifier (argument_list "(*piVar6,piVar6[1])" ( (pointer_expression "*piVar6" * identifier) , (subscript_expression "piVar6[1]" identifier [ number_literal ]) )))) ;) }))) }) (else_clause "else {\n      iVar3 = *piVar6;\n    }" else (compound_statement "{\n      iVar3 = *piVar6;\n    }" { (expression_statement "iVar3 = *piVar6;" (assignment_expression "iVar3 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) }))) (if_statement "if (iVar3 < 0) {\n      local_98 = (int *)0x13;\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba95;\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      local_98 = (int *)0x13;\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba95;\n    }" { (expression_statement "local_98 = (int *)0x13;" (assignment_expression "local_98 = (int *)0x13" identifier = (cast_expression "(int *)0x13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0013ba95;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0013b900:\n  iVar3 = FUN_00067fc0();" statement_identifier : (expression_statement "iVar3 = FUN_00067fc0();" (assignment_expression "iVar3 = FUN_00067fc0()" identifier = (call_expression "FUN_00067fc0()" identifier (argument_list "()" ( )))) ;)) (if_statement "if ((iVar3 != 0) || (__s = (void *)FUN_00055780(), __s == (void *)0x0)) {\n    local_98 = (int *)0x7;\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    goto LAB_0013ba95;\n  }" if (parenthesized_expression "((iVar3 != 0) || (__s = (void *)FUN_00055780(), __s == (void *)0x0))" ( (binary_expression "(iVar3 != 0) || (__s = (void *)FUN_00055780(), __s == (void *)0x0)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) || (parenthesized_expression "(__s = (void *)FUN_00055780(), __s == (void *)0x0)" ( (comma_expression "__s = (void *)FUN_00055780(), __s == (void *)0x0" (assignment_expression "__s = (void *)FUN_00055780()" identifier = (cast_expression "(void *)FUN_00055780()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00055780()" identifier (argument_list "()" ( ))))) , (binary_expression "__s == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    local_98 = (int *)0x7;\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    goto LAB_0013ba95;\n  }" { (expression_statement "local_98 = (int *)0x7;" (assignment_expression "local_98 = (int *)0x7" identifier = (cast_expression "(int *)0x7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0013ba95;" goto statement_identifier ;) })) (expression_statement "iVar3 = *(int *)(param_1 + 0x18) + 1;" (assignment_expression "iVar3 = *(int *)(param_1 + 0x18) + 1" identifier = (binary_expression "*(int *)(param_1 + 0x18) + 1" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "memset(__s,0,iVar3 * 8);" (call_expression "memset(__s,0,iVar3 * 8)" identifier (argument_list "(__s,0,iVar3 * 8)" ( identifier , number_literal , (binary_expression "iVar3 * 8" identifier * number_literal) ))) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (if_statement "if (*(int *)(param_1 + 0x108) == 0) {\n    local_98 = (int *)FUN_00101610();\n    piVar6 = local_58;\n    if (local_98 == (int *)0x0) {\n      iVar4 = FUN_00079820();\n      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }\n      FUN_000e7e00(local_58);\n      local_98 = (int *)FUN_000bfe40(local_58);\n      if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }\n  }\n  else {\n    local_98 = (int *)0x0;\n    if (param_2 < 2) {\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }\n    else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }\n    if (*(char *)(param_1 + 0xe8) != '\0') {\n      FUN_00111db0(__s,local_94);\n    }\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x108) == 0)" ( (binary_expression "*(int *)(param_1 + 0x108) == 0" (pointer_expression "*(int *)(param_1 + 0x108)" * (cast_expression "(int *)(param_1 + 0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_98 = (int *)FUN_00101610();\n    piVar6 = local_58;\n    if (local_98 == (int *)0x0) {\n      iVar4 = FUN_00079820();\n      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }\n      FUN_000e7e00(local_58);\n      local_98 = (int *)FUN_000bfe40(local_58);\n      if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }\n  }" { (expression_statement "local_98 = (int *)FUN_00101610();" (assignment_expression "local_98 = (int *)FUN_00101610()" identifier = (cast_expression "(int *)FUN_00101610()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00101610()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar6 = local_58;" (assignment_expression "piVar6 = local_58" identifier = identifier) ;) (if_statement "if (local_98 == (int *)0x0) {\n      iVar4 = FUN_00079820();\n      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }\n      FUN_000e7e00(local_58);\n      local_98 = (int *)FUN_000bfe40(local_58);\n      if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }" if (parenthesized_expression "(local_98 == (int *)0x0)" ( (binary_expression "local_98 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar4 = FUN_00079820();\n      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }\n      FUN_000e7e00(local_58);\n      local_98 = (int *)FUN_000bfe40(local_58);\n      if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }" { (expression_statement "iVar4 = FUN_00079820();" (assignment_expression "iVar4 = FUN_00079820()" identifier = (call_expression "FUN_00079820()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }" if (parenthesized_expression "((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0))" ( (binary_expression "(iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) && (parenthesized_expression "(*(int *)(*piVar6 + 0xc) != 0)" ( (binary_expression "*(int *)(*piVar6 + 0xc) != 0" (pointer_expression "*(int *)(*piVar6 + 0xc)" * (cast_expression "(int *)(*piVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + 0xc)" ( (binary_expression "*piVar6 + 0xc" (pointer_expression "*piVar6" * identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" * (cast_expression "(code **)(unaff_EBP + 0x7fbde)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbde)" ( (binary_expression "unaff_EBP + 0x7fbde" identifier + number_literal) ))))) )) (argument_list "(*(int *)(*piVar6 + 0xc))" ( (pointer_expression "*(int *)(*piVar6 + 0xc)" * (cast_expression "(int *)(*piVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + 0xc)" ( (binary_expression "*piVar6 + 0xc" (pointer_expression "*piVar6" * identifier) + number_literal) )))) ))) ;) })) (expression_statement "FUN_000e7e00(local_58);" (call_expression "FUN_000e7e00(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "local_98 = (int *)FUN_000bfe40(local_58);" (assignment_expression "local_98 = (int *)FUN_000bfe40(local_58)" identifier = (cast_expression "(int *)FUN_000bfe40(local_58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000bfe40(local_58)" identifier (argument_list "(local_58)" ( identifier ))))) ;) (if_statement "if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }" if (parenthesized_expression "(local_98 == (int *)0x0)" ( (binary_expression "local_98 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }" { (if_statement "if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }" if (parenthesized_expression "(1 < param_2)" ( (binary_expression "1 < param_2" number_literal < identifier) )) (compound_statement "{\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }" { (if_statement "if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;" if (parenthesized_expression "(*(int *)(param_1 + 0x28) == 0)" ( (binary_expression "*(int *)(param_1 + 0x28) == 0" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0013bc30;" goto statement_identifier ;)) (goto_statement "goto LAB_0013c280;" goto statement_identifier ;) })) (goto_statement "goto LAB_0013baf0;" goto statement_identifier ;) })) })) }) (else_clause "else {\n    local_98 = (int *)0x0;\n    if (param_2 < 2) {\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }\n    else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }\n    if (*(char *)(param_1 + 0xe8) != '\0') {\n      FUN_00111db0(__s,local_94);\n    }\n  }" else (compound_statement "{\n    local_98 = (int *)0x0;\n    if (param_2 < 2) {\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }\n    else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }\n    if (*(char *)(param_1 + 0xe8) != '\0') {\n      FUN_00111db0(__s,local_94);\n    }\n  }" { (expression_statement "local_98 = (int *)0x0;" (assignment_expression "local_98 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_2 < 2) {\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }\n    else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }" if (parenthesized_expression "(param_2 < 2)" ( (binary_expression "param_2 < 2" identifier < number_literal) )) (compound_statement "{\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }" { (labeled_statement "LAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }" statement_identifier : (if_statement "if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }" if (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')" ( (binary_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" * (cast_expression "(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" ( (binary_expression "unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" identifier + number_literal) + (parenthesized_expression "(*(ushort *)(*param_3 + 8) & 0x1f)" ( (binary_expression "*(ushort *)(*param_3 + 8) & 0x1f" (pointer_expression "*(ushort *)(*param_3 + 8)" * (cast_expression "(ushort *)(*param_3 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_3 + 8)" ( (binary_expression "*param_3 + 8" (pointer_expression "*param_3" * identifier) + number_literal) )))) & number_literal) ))) )))) != (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }" { (labeled_statement "LAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);" statement_identifier : (expression_statement "piVar6 = (int *)FUN_0013b480(__s);" (assignment_expression "piVar6 = (int *)FUN_0013b480(__s)" identifier = (cast_expression "(int *)FUN_0013b480(__s)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013b480(__s)" identifier (argument_list "(__s)" ( identifier ))))) ;)) (expression_statement "local_98 = piVar6;" (assignment_expression "local_98 = piVar6" identifier = identifier) ;) (goto_statement "goto LAB_0013bcfe;" goto statement_identifier ;) }))) }) (else_clause "else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }" else (if_statement "if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x28) == 0)" ( (binary_expression "*(int *)(param_1 + 0x28) == 0" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }" { (labeled_statement "LAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }" statement_identifier : (if_statement "if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }" if (parenthesized_expression "((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05'))" ( (binary_expression "(*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')" (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05')" ( (binary_expression "*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f))" * (cast_expression "(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f))" ( (binary_expression "unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" identifier + number_literal) + (parenthesized_expression "(*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)" ( (binary_expression "*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f" (pointer_expression "*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8)" * (cast_expression "(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3[*(int *)(param_1 + 0x18) + 3] + 8)" ( (binary_expression "param_3[*(int *)(param_1 + 0x18) + 3] + 8" (subscript_expression "param_3[*(int *)(param_1 + 0x18) + 3]" identifier [ (binary_expression "*(int *)(param_1 + 0x18) + 3" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) + number_literal) ]) + number_literal) )))) & number_literal) ))) )))) == (char_literal "'\x05'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')" ( (binary_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f))" * (cast_expression "(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f))" ( (binary_expression "unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" identifier + number_literal) + (parenthesized_expression "(*(ushort *)(param_3[1] + 8) & 0x1f)" ( (binary_expression "*(ushort *)(param_3[1] + 8) & 0x1f" (pointer_expression "*(ushort *)(param_3[1] + 8)" * (cast_expression "(ushort *)(param_3[1] + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3[1] + 8)" ( (binary_expression "param_3[1] + 8" (subscript_expression "param_3[1]" identifier [ number_literal ]) + number_literal) )))) & number_literal) ))) )))) == (char_literal "'\x05'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_0013c280:\n        bVar23 = false;\n      }" { (labeled_statement "LAB_0013c280:\n        bVar23 = false;" statement_identifier : (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;)) }) (else_clause "else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }" else (compound_statement "{\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }" { (if_statement "if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }" if (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05')" ( (binary_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" * (cast_expression "(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" ( (binary_expression "unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" identifier + number_literal) + (parenthesized_expression "(*(ushort *)(*param_3 + 8) & 0x1f)" ( (binary_expression "*(ushort *)(*param_3 + 8) & 0x1f" (pointer_expression "*(ushort *)(*param_3 + 8)" * (cast_expression "(ushort *)(*param_3 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_3 + 8)" ( (binary_expression "*param_3 + 8" (pointer_expression "*param_3" * identifier) + number_literal) )))) & number_literal) ))) )))) == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }" { (labeled_statement "LAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }" statement_identifier : (if_statement "if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }" if (parenthesized_expression "((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             )" ( (binary_expression "(&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'" (subscript_expression "(&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP]" (parenthesized_expression "(&UNK_000274d9)" ( (pointer_expression "&UNK_000274d9" & identifier) )) [ (binary_expression "(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP" (binary_expression "(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*(int *)(param_1 + 0xc) + 0x52)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xc) + 0x52)" ( (binary_expression "*(int *)(param_1 + 0xc) + 0x52" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal) )))) + identifier) ]) == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }" { (expression_statement "local_98 = (int *)FUN_0013b480(__s);" (assignment_expression "local_98 = (int *)FUN_0013b480(__s)" identifier = (cast_expression "(int *)FUN_0013b480(__s)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013b480(__s)" identifier (argument_list "(__s)" ( identifier ))))) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) }) (else_clause "else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }" else (compound_statement "{\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }" { (expression_statement "local_98 = (int *)FUN_0010b320();" (assignment_expression "local_98 = (int *)FUN_0010b320()" identifier = (cast_expression "(int *)FUN_0010b320()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010b320()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" identifier = true) ;) })))) }) (else_clause "else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }" else (compound_statement "{\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }" { (expression_statement "lVar25 = FUN_00045540();" (assignment_expression "lVar25 = FUN_00045540()" identifier = (call_expression "FUN_00045540()" identifier (argument_list "()" ( )))) ;) (expression_statement "lVar26 = FUN_00045540();" (assignment_expression "lVar26 = FUN_00045540()" identifier = (call_expression "FUN_00045540()" identifier (argument_list "()" ( )))) ;) (if_statement "if (lVar25 != lVar26) goto LAB_0013bc87;" if (parenthesized_expression "(lVar25 != lVar26)" ( (binary_expression "lVar25 != lVar26" identifier != identifier) )) (goto_statement "goto LAB_0013bc87;" goto statement_identifier ;)) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) }))) (if_statement "if (local_98 != (int *)0x0) goto LAB_0013bb29;" if (parenthesized_expression "(local_98 != (int *)0x0)" ( (binary_expression "local_98 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013bb29;" goto statement_identifier ;)) })))) (if_statement "if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;" if (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')" ( (binary_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" * (cast_expression "(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" ( (binary_expression "unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" identifier + number_literal) + (parenthesized_expression "(*(ushort *)(*param_3 + 8) & 0x1f)" ( (binary_expression "*(ushort *)(*param_3 + 8) & 0x1f" (pointer_expression "*(ushort *)(*param_3 + 8)" * (cast_expression "(ushort *)(*param_3 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_3 + 8)" ( (binary_expression "*param_3 + 8" (pointer_expression "*param_3" * identifier) + number_literal) )))) & number_literal) ))) )))) != (char_literal "'\x05'" ' escape_sequence ')) )) (goto_statement "goto LAB_0013bce0;" goto statement_identifier ;)) (expression_statement "piVar6 = (int *)0x0;" (assignment_expression "piVar6 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);" statement_identifier : (expression_statement "local_12c = (int *)((int)__s + iVar3 * 4);" (assignment_expression "local_12c = (int *)((int)__s + iVar3 * 4)" identifier = (cast_expression "(int *)((int)__s + iVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s + iVar3 * 4)" ( (binary_expression "(int)__s + iVar3 * 4" (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar3 * 4" identifier * number_literal)) )))) ;)) (if_statement "if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }" if (parenthesized_expression "((1 < param_2) && (piVar6 == (int *)0x0))" ( (binary_expression "(1 < param_2) && (piVar6 == (int *)0x0)" (parenthesized_expression "(1 < param_2)" ( (binary_expression "1 < param_2" number_literal < identifier) )) && (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }" { (expression_statement "local_124 = FUN_00045540();" (assignment_expression "local_124 = FUN_00045540()" identifier = (call_expression "FUN_00045540()" identifier (argument_list "()" ( )))) ;) (if_statement "if (!bVar23) goto LAB_0013b9c2;" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (goto_statement "goto LAB_0013b9c2;" goto statement_identifier ;)) (goto_statement "goto LAB_0013bd4a;" goto statement_identifier ;) })) }) (else_clause "else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }" else (compound_statement "{\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }" { (if_statement "if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;" if (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')" ( (binary_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" * (cast_expression "(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" ( (binary_expression "unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" identifier + number_literal) + (parenthesized_expression "(*(ushort *)(*param_3 + 8) & 0x1f)" ( (binary_expression "*(ushort *)(*param_3 + 8) & 0x1f" (pointer_expression "*(ushort *)(*param_3 + 8)" * (cast_expression "(ushort *)(*param_3 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_3 + 8)" ( (binary_expression "*param_3 + 8" (pointer_expression "*param_3" * identifier) + number_literal) )))) & number_literal) ))) )))) != (char_literal "'\x05'" ' escape_sequence ')) )) (goto_statement "goto LAB_0013bce0;" goto statement_identifier ;)) (expression_statement "local_12c = (int *)((int)__s + iVar3 * 4);" (assignment_expression "local_12c = (int *)((int)__s + iVar3 * 4)" identifier = (cast_expression "(int *)((int)__s + iVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s + iVar3 * 4)" ( (binary_expression "(int)__s + iVar3 * 4" (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar3 * 4" identifier * number_literal)) )))) ;) (expression_statement "local_124 = FUN_00045540();" (assignment_expression "local_124 = FUN_00045540()" identifier = (call_expression "FUN_00045540()" identifier (argument_list "()" ( )))) ;) (labeled_statement "LAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();" statement_identifier : (expression_statement "local_98 = (int *)FUN_0010b320();" (assignment_expression "local_98 = (int *)FUN_0010b320()" identifier = (cast_expression "(int *)FUN_0010b320()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010b320()" identifier (argument_list "()" ( ))))) ;)) (if_statement "if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(local_98 == (int *)0x13)" ( (binary_expression "local_98 == (int *)0x13" identifier == (cast_expression "(int *)0x13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }" { (expression_statement "piVar6 = local_98;" (assignment_expression "piVar6 = local_98" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x28) == 0)" ( (binary_expression "*(int *)(param_1 + 0x28) == 0" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }" { (expression_statement "local_98 = (int *)0x10b;" (assignment_expression "local_98 = (int *)0x10b" identifier = (cast_expression "(int *)0x10b" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar6 = local_98;" (assignment_expression "piVar6 = local_98" identifier = identifier) ;) })) }) (else_clause "else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }" else (compound_statement "{\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_0013bd4a:\n        piVar6 = local_98;" statement_identifier : (expression_statement "piVar6 = local_98;" (assignment_expression "piVar6 = local_98" identifier = identifier) ;)) (if_statement "if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }" if (parenthesized_expression "(local_98 == (int *)0x0)" ( (binary_expression "local_98 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }" { (expression_statement "uVar7 = *param_4;" (assignment_expression "uVar7 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "uVar28 = param_4[1];" (assignment_expression "uVar28 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = *(uint *)(param_1 + 0x110);" (assignment_expression "uVar10 = *(uint *)(param_1 + 0x110)" identifier = (pointer_expression "*(uint *)(param_1 + 0x110)" * (cast_expression "(uint *)(param_1 + 0x110)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) ;) (expression_statement "uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));" (assignment_expression "uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c))" identifier = (call_expression "(uint)(uVar7 < *(uint *)(param_1 + 0x10c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 < *(uint *)(param_1 + 0x10c))" ( (binary_expression "uVar7 < *(uint *)(param_1 + 0x10c)" identifier < (pointer_expression "*(uint *)(param_1 + 0x10c)" * (cast_expression "(uint *)(param_1 + 0x10c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) ))))) )))) ;) (if_statement "if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }" if (parenthesized_expression "((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0))" ( (binary_expression "(((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)" (parenthesized_expression "(((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104)))))" ( (binary_expression "((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))" (parenthesized_expression "((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0)" ( (binary_expression "(SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0" (parenthesized_expression "(SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20))" ( (binary_expression "SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)" (call_expression "SBORROW4(uVar28,uVar10)" identifier (argument_list "(uVar28,uVar10)" ( identifier , identifier ))) != (call_expression "SBORROW4(uVar28 - uVar10,uVar20)" identifier (argument_list "(uVar28 - uVar10,uVar20)" ( (binary_expression "uVar28 - uVar10" identifier - identifier) , identifier )))) )) == (binary_expression "(int)((uVar28 - uVar10) - uVar20) < 0" (cast_expression "(int)((uVar28 - uVar10) - uVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uVar28 - uVar10) - uVar20)" ( (binary_expression "(uVar28 - uVar10) - uVar20" (parenthesized_expression "(uVar28 - uVar10)" ( (binary_expression "uVar28 - uVar10" identifier - identifier) )) - identifier) ))) < number_literal)) )) && (parenthesized_expression "((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))" ( (parenthesized_expression "(((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104)))" ( (binary_expression "((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))" (parenthesized_expression "((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114)))" ( (binary_expression "(uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))" (parenthesized_expression "(uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0))" ( (binary_expression "uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)" (binary_expression "uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7" (binary_expression "uVar10 != uVar28" identifier != identifier) || (binary_expression "*(uint *)(param_1 + 0x10c) != uVar7" (pointer_expression "*(uint *)(param_1 + 0x10c)" * (cast_expression "(uint *)(param_1 + 0x10c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) )))) != identifier)) || (parenthesized_expression "(*(int *)(param_1 + 0x118) != 0)" ( (binary_expression "*(int *)(param_1 + 0x118) != 0" (pointer_expression "*(int *)(param_1 + 0x118)" * (cast_expression "(int *)(param_1 + 0x118)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(local_124 == *(int *)(param_1 + 0x114))" ( (binary_expression "local_124 == *(int *)(param_1 + 0x114)" identifier == (pointer_expression "*(int *)(param_1 + 0x114)" * (cast_expression "(int *)(param_1 + 0x114)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x114)" ( (binary_expression "param_1 + 0x114" identifier + number_literal) ))))) ))) )) && (parenthesized_expression "(*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))" ( (binary_expression "*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104)" (pointer_expression "*(int *)(param_1 + 0x108)" * (cast_expression "(int *)(param_1 + 0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) <= (pointer_expression "*(int *)(param_1 + 0x104)" * (cast_expression "(int *)(param_1 + 0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x104)" ( (binary_expression "param_1 + 0x104" identifier + number_literal) ))))) ))) )) ))) )) || (parenthesized_expression "(piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)" ( (comma_expression "piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0" (assignment_expression "piVar6 = (int *)FUN_0013aff0()" identifier = (cast_expression "(int *)FUN_0013aff0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013aff0()" identifier (argument_list "()" ( ))))) , (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }" { (expression_statement "*(int *)(param_1 + 0x114) = local_124;" (assignment_expression "*(int *)(param_1 + 0x114) = local_124" (pointer_expression "*(int *)(param_1 + 0x114)" * (cast_expression "(int *)(param_1 + 0x114)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x114)" ( (binary_expression "param_1 + 0x114" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(param_1 + 0x110) = uVar28;" (assignment_expression "*(uint *)(param_1 + 0x110) = uVar28" (pointer_expression "*(uint *)(param_1 + 0x110)" * (cast_expression "(uint *)(param_1 + 0x110)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(param_1 + 0x10c) = uVar7;" (assignment_expression "*(uint *)(param_1 + 0x10c) = uVar7" (pointer_expression "*(uint *)(param_1 + 0x10c)" * (cast_expression "(uint *)(param_1 + 0x10c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x118) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x118) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x118)" * (cast_expression "(undefined4 *)(param_1 + 0x118)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "piVar6 = local_98;" (assignment_expression "piVar6 = local_98" identifier = identifier) ;) (if_statement "if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }" if (parenthesized_expression "(0 < iVar3)" ( (binary_expression "0 < iVar3" number_literal < identifier) )) (compound_statement "{\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }" { (do_statement "do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);" do (compound_statement "{\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              }" { (if_statement "if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }" if (parenthesized_expression "(*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0')" ( (binary_expression "*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 0x20) + iVar4)" * (cast_expression "(char *)(*(int *)(param_1 + 0x20) + iVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x20) + iVar4)" ( (binary_expression "*(int *)(param_1 + 0x20) + iVar4" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }" { (expression_statement "FUN_0007f6d0();" (call_expression "FUN_0007f6d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));" (assignment_expression "piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4))" identifier = (cast_expression "(int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4))" identifier (argument_list "(iVar4,(void *)((int)local_12c + iVar4 * 4))" ( identifier , (cast_expression "(void *)((int)local_12c + iVar4 * 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_12c + iVar4 * 4)" ( (binary_expression "(int)local_12c + iVar4 * 4" (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar4 * 4" identifier * number_literal)) ))) ))))) ;) (if_statement "if (piVar6 != (int *)0x0) break;" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = FUN_0007f360();" (assignment_expression "iVar3 = FUN_0007f360()" identifier = (call_expression "FUN_0007f360()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);" (assignment_expression "piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4)" identifier = (cast_expression "(int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_12c + *(int *)(param_1 + 0x18) * 4)" ( (binary_expression "(int)local_12c + *(int *)(param_1 + 0x18) * 4" (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(param_1 + 0x18) * 4" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) * number_literal)) )))) ;) (expression_statement "*piVar6 = *piVar6 + iVar3;" (assignment_expression "*piVar6 = *piVar6 + iVar3" (pointer_expression "*piVar6" * identifier) = (binary_expression "*piVar6 + iVar3" (pointer_expression "*piVar6" * identifier) + identifier)) ;) (expression_statement "iVar3 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) })) (expression_statement "iVar18 = iVar4 + 2;" (assignment_expression "iVar18 = iVar4 + 2" identifier = (binary_expression "iVar4 + 2" identifier + number_literal)) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "piVar6 = local_98;" (assignment_expression "piVar6 = local_98" identifier = identifier) ;) }) while (parenthesized_expression "(iVar18 <= iVar3)" ( (binary_expression "iVar18 <= iVar3" identifier <= identifier) )) ;) })) })) })) }))) (expression_statement "local_98 = piVar6;" (assignment_expression "local_98 = piVar6" identifier = identifier) ;) (if_statement "if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }" if (parenthesized_expression "(*(char *)(param_1 + 0xea) != '\0')" ( (binary_expression "*(char *)(param_1 + 0xea) != '\0'" (pointer_expression "*(char *)(param_1 + 0xea)" * (cast_expression "(char *)(param_1 + 0xea)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xea)" ( (binary_expression "param_1 + 0xea" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        FUN_00111bd0();\n      }" { (expression_statement "FUN_00111bd0();" (call_expression "FUN_00111bd0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_94 = 1;" (assignment_expression "local_94 = 1" identifier = number_literal) ;) }))))) (if_statement "if (*(char *)(param_1 + 0xe8) != '\0') {\n      FUN_00111db0(__s,local_94);\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0xe8) != '\0')" ( (binary_expression "*(char *)(param_1 + 0xe8) != '\0'" (pointer_expression "*(char *)(param_1 + 0xe8)" * (cast_expression "(char *)(param_1 + 0xe8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe8)" ( (binary_expression "param_1 + 0xe8" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_00111db0(__s,local_94);\n    }" { (expression_statement "FUN_00111db0(__s,local_94);" (call_expression "FUN_00111db0(__s,local_94)" identifier (argument_list "(__s,local_94)" ( identifier , identifier ))) ;) })) }))) (labeled_statement "LAB_0013bb29:\n  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  }\n  else {\n    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }\n    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);\n    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n  }" statement_identifier : (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  }\n  else {\n    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }\n    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);\n    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n  }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) == 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" * (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7fb7a)" ( (binary_expression "unaff_EBP + 0x7fb7a" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(__s);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(__s)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(__s)" ( identifier ))) ;) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }\n    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);\n    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n  }" else (compound_statement "{\n    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }\n    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);\n    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n  }" { (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" * (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbd6)" ( (binary_expression "unaff_EBP + 0x7fbd6" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) })) (expression_statement "iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);" (assignment_expression "iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s)" identifier = (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(__s)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" * (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbb2)" ( (binary_expression "unaff_EBP + 0x7fbb2" identifier + number_literal) ))))) )) (argument_list "(__s)" ( identifier )))) ;) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" * (cast_expression "(int *)(unaff_EBP + 0x8159e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8159e)" ( (binary_expression "unaff_EBP + 0x8159e" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) = (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar3" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" * (cast_expression "(int *)(unaff_EBP + 0x8157a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8157a)" ( (binary_expression "unaff_EBP + 0x8157a" identifier + number_literal) )))) - identifier)) ;) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(__s);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(__s)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" * (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbaa)" ( (binary_expression "unaff_EBP + 0x7fbaa" identifier + number_literal) ))))) )) (argument_list "(__s)" ( identifier ))) ;) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) == 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x8155e) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }" { (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }" else (compound_statement "{\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }" { (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" ( (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" * (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" * (cast_expression "(code **)(unaff_EBP + 0x7fbde)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x7fbde)" ( (binary_expression "unaff_EBP + 0x7fbde" identifier + number_literal) ))))) )) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" ( (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" * (cast_expression "(int *)(unaff_EBP + 0x8155e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x8155e)" ( (binary_expression "unaff_EBP + 0x8155e" identifier + number_literal) )))) ))) ;) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) }))) })))) (goto_statement "goto LAB_0013ba95;" goto statement_identifier ;) (labeled_statement "LAB_0013d4fe:\n  FUN_000c0450(local_8c);" statement_identifier : (expression_statement "FUN_000c0450(local_8c);" (call_expression "FUN_000c0450(local_8c)" identifier (argument_list "(local_8c)" ( identifier ))) ;)) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (expression_statement "local_f0 = piVar6;" (assignment_expression "local_f0 = piVar6" identifier = identifier) ;) (goto_statement "goto LAB_0013ba71;" goto statement_identifier ;) (labeled_statement "LAB_0013d234:\n  iVar4 = FUN_000e7e00(uVar5);" statement_identifier : (expression_statement "iVar4 = FUN_000e7e00(uVar5);" (assignment_expression "iVar4 = FUN_000e7e00(uVar5)" identifier = (call_expression "FUN_000e7e00(uVar5)" identifier (argument_list "(uVar5)" ( identifier )))) ;)) (if_statement "if (iVar4 == 100) {\n    FUN_0004c5d0();\n    uVar27 = FUN_00045540();\n    iVar18 = (int)((ulonglong)uVar27 >> 0x20);\n    uVar7 = (uint)uVar27;\n    FUN_0004c6c0();\n    iVar4 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x2c) == 0) {\n      uVar28 = 0;\n      iVar9 = 0;\n    }\n    else {\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }\n    uVar10 = uVar7 * 9 + uVar28;\n    iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28);\n    uVar7 = uVar10 * 9;\n    iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8);\n    uVar5 = local_8c;\n    if (0 < iVar4) {\n      local_114 = 0;\n      iVar9 = *(int *)(param_1 + 0x20);\n      do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);\n    }\n    goto LAB_0013d234;\n  }" if (parenthesized_expression "(iVar4 == 100)" ( (binary_expression "iVar4 == 100" identifier == number_literal) )) (compound_statement "{\n    FUN_0004c5d0();\n    uVar27 = FUN_00045540();\n    iVar18 = (int)((ulonglong)uVar27 >> 0x20);\n    uVar7 = (uint)uVar27;\n    FUN_0004c6c0();\n    iVar4 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x2c) == 0) {\n      uVar28 = 0;\n      iVar9 = 0;\n    }\n    else {\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }\n    uVar10 = uVar7 * 9 + uVar28;\n    iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28);\n    uVar7 = uVar10 * 9;\n    iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8);\n    uVar5 = local_8c;\n    if (0 < iVar4) {\n      local_114 = 0;\n      iVar9 = *(int *)(param_1 + 0x20);\n      do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);\n    }\n    goto LAB_0013d234;\n  }" { (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar27 = FUN_00045540();" (assignment_expression "uVar27 = FUN_00045540()" identifier = (call_expression "FUN_00045540()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar18 = (int)((ulonglong)uVar27 >> 0x20);" (assignment_expression "iVar18 = (int)((ulonglong)uVar27 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar27 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar27 >> 0x20)" ( (binary_expression "(ulonglong)uVar27 >> 0x20" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar7 = (uint)uVar27;" (assignment_expression "uVar7 = (uint)uVar27" identifier = (cast_expression "(uint)uVar27" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar4 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x2c) == 0) {\n      uVar28 = 0;\n      iVar9 = 0;\n    }\n    else {\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x2c) == 0)" ( (binary_expression "*(int *)(param_1 + 0x2c) == 0" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      uVar28 = 0;\n      iVar9 = 0;\n    }" { (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }" else (compound_statement "{\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }" { (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar28 = FUN_00045540();" (assignment_expression "uVar28 = FUN_00045540()" identifier = (call_expression "FUN_00045540()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar9 = (int)uVar28 >> 0x1f;" (assignment_expression "iVar9 = (int)uVar28 >> 0x1f" identifier = (binary_expression "(int)uVar28 >> 0x1f" (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "iVar4 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar10 = uVar7 * 9 + uVar28;" (assignment_expression "uVar10 = uVar7 * 9 + uVar28" identifier = (binary_expression "uVar7 * 9 + uVar28" (binary_expression "uVar7 * 9" identifier * number_literal) + identifier)) ;) (expression_statement "iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28);" (assignment_expression "iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28)" identifier = (binary_expression "(iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28)" (binary_expression "(iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9" (binary_expression "(iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7)" (binary_expression "(iVar18 << 3 | uVar7 >> 0x1d) + iVar18" (parenthesized_expression "(iVar18 << 3 | uVar7 >> 0x1d)" ( (binary_expression "iVar18 << 3 | uVar7 >> 0x1d" (binary_expression "iVar18 << 3" identifier << number_literal) | (binary_expression "uVar7 >> 0x1d" identifier >> number_literal)) )) + identifier) + (cast_expression "(uint)CARRY4(uVar7 * 8,uVar7)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar7 * 8,uVar7)" identifier (argument_list "(uVar7 * 8,uVar7)" ( (binary_expression "uVar7 * 8" identifier * number_literal) , identifier ))))) + identifier) + (cast_expression "(uint)CARRY4(uVar7 * 9,uVar28)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar7 * 9,uVar28)" identifier (argument_list "(uVar7 * 9,uVar28)" ( (binary_expression "uVar7 * 9" identifier * number_literal) , identifier )))))) ;) (expression_statement "uVar7 = uVar10 * 9;" (assignment_expression "uVar7 = uVar10 * 9" identifier = (binary_expression "uVar10 * 9" identifier * number_literal)) ;) (expression_statement "iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8);" (assignment_expression "iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8)" identifier = (binary_expression "iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8)" (binary_expression "iVar18 + (iVar18 * 8 | uVar10 >> 0x1d)" identifier + (parenthesized_expression "(iVar18 * 8 | uVar10 >> 0x1d)" ( (binary_expression "iVar18 * 8 | uVar10 >> 0x1d" (binary_expression "iVar18 * 8" identifier * number_literal) | (binary_expression "uVar10 >> 0x1d" identifier >> number_literal)) ))) + (cast_expression "(uint)CARRY4(uVar10,uVar10 * 8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar10,uVar10 * 8)" identifier (argument_list "(uVar10,uVar10 * 8)" ( identifier , (binary_expression "uVar10 * 8" identifier * number_literal) )))))) ;) (expression_statement "uVar5 = local_8c;" (assignment_expression "uVar5 = local_8c" identifier = identifier) ;) (if_statement "if (0 < iVar4) {\n      local_114 = 0;\n      iVar9 = *(int *)(param_1 + 0x20);\n      do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);\n    }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n      local_114 = 0;\n      iVar9 = *(int *)(param_1 + 0x20);\n      do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);\n    }" { (expression_statement "local_114 = 0;" (assignment_expression "local_114 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (do_statement "do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);" do (compound_statement "{\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      }" { (expression_statement "local_10c = local_114 + 1;" (assignment_expression "local_10c = local_114 + 1" identifier = (binary_expression "local_114 + 1" identifier + number_literal)) ;) (if_statement "if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }" if (parenthesized_expression "(*(char *)(iVar9 + local_114) == '\0')" ( (binary_expression "*(char *)(iVar9 + local_114) == '\0'" (pointer_expression "*(char *)(iVar9 + local_114)" * (cast_expression "(char *)(iVar9 + local_114)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + local_114)" ( (binary_expression "iVar9 + local_114" identifier + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }" { (expression_statement "uVar28 = (uint)((ulonglong)uVar7 * 9);" (assignment_expression "uVar28 = (uint)((ulonglong)uVar7 * 9)" identifier = (call_expression "(uint)((ulonglong)uVar7 * 9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar7 * 9)" ( (binary_expression "(ulonglong)uVar7 * 9" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * number_literal) )))) ;) (expression_statement "local_dc = uVar28 + local_114;" (assignment_expression "local_dc = uVar28 + local_114" identifier = (binary_expression "uVar28 + local_114" identifier + identifier)) ;) (expression_statement "local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);" (assignment_expression "local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114)" identifier = (binary_expression "(int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114)" (binary_expression "(int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f)" (binary_expression "(int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9" (cast_expression "(int)((ulonglong)uVar7 * 9 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar7 * 9 >> 0x20)" ( (binary_expression "(ulonglong)uVar7 * 9 >> 0x20" (binary_expression "(ulonglong)uVar7 * 9" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * number_literal) >> number_literal) ))) + (binary_expression "iVar18 * 9" identifier * number_literal)) + (parenthesized_expression "((int)local_114 >> 0x1f)" ( (binary_expression "(int)local_114 >> 0x1f" (cast_expression "(int)local_114" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar28,local_114)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar28,local_114)" identifier (argument_list "(uVar28,local_114)" ( identifier , identifier )))))) ;) (expression_statement "local_e4 = local_114 + uVar10 * 0x51;" (assignment_expression "local_e4 = local_114 + uVar10 * 0x51" identifier = (binary_expression "local_114 + uVar10 * 0x51" identifier + (binary_expression "uVar10 * 0x51" identifier * number_literal))) ;) (expression_statement "local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);" (assignment_expression "local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51)" identifier = (binary_expression "((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51)" (binary_expression "((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7)" (binary_expression "((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18" (binary_expression "((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d)" (parenthesized_expression "((int)local_114 >> 0x1f)" ( (binary_expression "(int)local_114 >> 0x1f" (cast_expression "(int)local_114" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (parenthesized_expression "(iVar18 * 8 | uVar7 >> 0x1d)" ( (binary_expression "iVar18 * 8 | uVar7 >> 0x1d" (binary_expression "iVar18 * 8" identifier * number_literal) | (binary_expression "uVar7 >> 0x1d" identifier >> number_literal)) ))) + identifier) + (cast_expression "(uint)CARRY4(uVar10 * 0x48,uVar7)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar10 * 0x48,uVar7)" identifier (argument_list "(uVar10 * 0x48,uVar7)" ( (binary_expression "uVar10 * 0x48" identifier * number_literal) , identifier ))))) + (cast_expression "(uint)CARRY4(local_114,uVar10 * 0x51)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_114,uVar10 * 0x51)" identifier (argument_list "(local_114,uVar10 * 0x51)" ( identifier , (binary_expression "uVar10 * 0x51" identifier * number_literal) )))))) ;) (while_statement "while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }" { (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0007f6d0();" (call_expression "FUN_0007f6d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar5 = FUN_0007f360();" (assignment_expression "uVar5 = FUN_0007f360()" identifier = (call_expression "FUN_0007f360()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);" (assignment_expression "piVar6 = (int *)FUN_0003ed50(uVar5,&local_88)" identifier = (cast_expression "(int *)FUN_0003ed50(uVar5,&local_88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003ed50(uVar5,&local_88)" identifier (argument_list "(uVar5,&local_88)" ( identifier , (pointer_expression "&local_88" & identifier) ))))) ;) (if_statement "if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }" { (while_statement "while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }" { (expression_statement "local_7c[0] = 0;" (assignment_expression "local_7c[0] = 0" (subscript_expression "local_7c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_7c[2] = 0;" (assignment_expression "local_7c[2] = 0" (subscript_expression "local_7c[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_68 = (int *)0x0;" (assignment_expression "local_68 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_58 = (int *)0x0;" (assignment_expression "local_58 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);" (assignment_expression "piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58)" identifier = (cast_expression "(int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58)" (parenthesized_expression "(**(code **)(iVar3 + 0x14))" ( (pointer_expression "**(code **)(iVar3 + 0x14)" * (pointer_expression "*(code **)(iVar3 + 0x14)" * (cast_expression "(code **)(iVar3 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) ))))) )) (argument_list "(local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58)" ( identifier , (pointer_expression "&local_84" & identifier) , identifier , (binary_expression "local_7c + 2" identifier + number_literal) , (pointer_expression "&local_68" & identifier) , (pointer_expression "&local_58" & identifier) ))))) ;) (if_statement "if (piVar6 != (int *)0x0) break;" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;" (assignment_expression "puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8" identifier = (binary_expression "(undefined1 *)((int)local_58 + local_e4) + local_e4 * 8" (cast_expression "(undefined1 *)((int)local_58 + local_e4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_58 + local_e4)" ( (binary_expression "(int)local_58 + local_e4" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) + (binary_expression "local_e4 * 8" identifier * number_literal))) ;) (expression_statement "uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);" (assignment_expression "uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8)" identifier = (binary_expression "((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8)" (binary_expression "((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d)" (binary_expression "((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)" (binary_expression "((int)local_58 >> 0x1f) + local_e0" (parenthesized_expression "((int)local_58 >> 0x1f)" ( (binary_expression "(int)local_58 >> 0x1f" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + identifier) + (cast_expression "(uint)CARRY4((uint)local_58,local_e4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_58,local_e4)" identifier (argument_list "((uint)local_58,local_e4)" ( (cast_expression "(uint)local_58" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier ))))) + (parenthesized_expression "(local_e0 << 3 | local_e4 >> 0x1d)" ( (binary_expression "local_e0 << 3 | local_e4 >> 0x1d" (binary_expression "local_e0 << 3" identifier << number_literal) | (binary_expression "local_e4 >> 0x1d" identifier >> number_literal)) ))) + (cast_expression "(uint)CARRY4((int)local_58 + local_e4,local_e4 * 8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((int)local_58 + local_e4,local_e4 * 8)" identifier (argument_list "((int)local_58 + local_e4,local_e4 * 8)" ( (binary_expression "(int)local_58 + local_e4" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , (binary_expression "local_e4 * 8" identifier * number_literal) )))))) ;) (if_statement "if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }" if (parenthesized_expression "(0 < (int)local_7c[0])" ( (binary_expression "0 < (int)local_7c[0]" number_literal < (cast_expression "(int)local_7c[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_7c[0]" identifier [ number_literal ]))) )) (compound_statement "{\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }" { (expression_statement "pcVar15 = local_84;" (assignment_expression "pcVar15 = local_84" identifier = identifier) ;) (do_statement "do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);" do (compound_statement "{\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  }" { (expression_statement "uVar11 = (uint)*pcVar15;" (assignment_expression "uVar11 = (uint)*pcVar15" identifier = (binary_expression "(uint)*pcVar15" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "uVar12 = (int)puVar14 * 8;" (assignment_expression "uVar12 = (int)puVar14 * 8" identifier = (binary_expression "(int)puVar14 * 8" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "uVar20 = (uint)puVar14 >> 0x1d;" (assignment_expression "uVar20 = (uint)puVar14 >> 0x1d" identifier = (binary_expression "(uint)puVar14 >> 0x1d" (cast_expression "(uint)puVar14" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "uVar13 = uVar12 + uVar11;" (assignment_expression "uVar13 = uVar12 + uVar11" identifier = (binary_expression "uVar12 + uVar11" identifier + identifier)) ;) (expression_statement "bVar23 = CARRY4((uint)puVar14,uVar13);" (assignment_expression "bVar23 = CARRY4((uint)puVar14,uVar13)" identifier = (call_expression "CARRY4((uint)puVar14,uVar13)" identifier (argument_list "((uint)puVar14,uVar13)" ( (cast_expression "(uint)puVar14" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "puVar14 = puVar14 + uVar13;" (assignment_expression "puVar14 = puVar14 + uVar13" identifier = (binary_expression "puVar14 + uVar13" identifier + identifier)) ;) (expression_statement "uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;" (assignment_expression "uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23" identifier = (binary_expression "uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23" (binary_expression "uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11)" (binary_expression "uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f)" (binary_expression "uVar28 + (uVar28 << 3 | uVar20)" identifier + (parenthesized_expression "(uVar28 << 3 | uVar20)" ( (binary_expression "uVar28 << 3 | uVar20" (binary_expression "uVar28 << 3" identifier << number_literal) | identifier) ))) + (parenthesized_expression "((int)uVar11 >> 0x1f)" ( (binary_expression "(int)uVar11 >> 0x1f" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar12,uVar11)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar12,uVar11)" identifier (argument_list "(uVar12,uVar11)" ( identifier , identifier ))))) + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_84 + local_7c[0] != pcVar15)" ( (binary_expression "local_84 + local_7c[0] != pcVar15" (binary_expression "local_84 + local_7c[0]" identifier + (subscript_expression "local_7c[0]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "local_ec = local_ec ^ (uint)puVar14;" (assignment_expression "local_ec = local_ec ^ (uint)puVar14" identifier = (binary_expression "local_ec ^ (uint)puVar14" identifier ^ (cast_expression "(uint)puVar14" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_e8 = local_e8 ^ uVar28;" (assignment_expression "local_e8 = local_e8 ^ uVar28" identifier = (binary_expression "local_e8 ^ uVar28" identifier ^ identifier)) ;) (if_statement "if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }" if (parenthesized_expression "(1 < *(int *)(param_1 + 0xfc))" ( (binary_expression "1 < *(int *)(param_1 + 0xfc)" number_literal < (pointer_expression "*(int *)(param_1 + 0xfc)" * (cast_expression "(int *)(param_1 + 0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xfc)" ( (binary_expression "param_1 + 0xfc" identifier + number_literal) ))))) )) (compound_statement "{\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }" { (expression_statement "piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);" (assignment_expression "piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18)" identifier = (cast_expression "(int *)(*(int *)(param_1 + 0x100) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x100) + 0x18)" ( (binary_expression "*(int *)(param_1 + 0x100) + 0x18" (pointer_expression "*(int *)(param_1 + 0x100)" * (cast_expression "(int *)(param_1 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);" (assignment_expression "local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8)" identifier = (cast_expression "(int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined1 *)((int)local_58 + local_dc) + local_dc * 8)" ( (binary_expression "(undefined1 *)((int)local_58 + local_dc) + local_dc * 8" (cast_expression "(undefined1 *)((int)local_58 + local_dc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_58 + local_dc)" ( (binary_expression "(int)local_58 + local_dc" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) + (binary_expression "local_dc * 8" identifier * number_literal)) )))) ;) (expression_statement "local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);" (assignment_expression "local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8)" identifier = (binary_expression "((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8)" (binary_expression "((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d)" (binary_expression "((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc)" (binary_expression "((int)local_58 >> 0x1f) + local_d8" (parenthesized_expression "((int)local_58 >> 0x1f)" ( (binary_expression "(int)local_58 >> 0x1f" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + identifier) + (cast_expression "(uint)CARRY4((uint)local_58,local_dc)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_58,local_dc)" identifier (argument_list "((uint)local_58,local_dc)" ( (cast_expression "(uint)local_58" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier ))))) + (parenthesized_expression "(local_d8 << 3 | local_dc >> 0x1d)" ( (binary_expression "local_d8 << 3 | local_dc >> 0x1d" (binary_expression "local_d8 << 3" identifier << number_literal) | (binary_expression "local_dc >> 0x1d" identifier >> number_literal)) ))) + (cast_expression "(uint)CARRY4((int)local_58 + local_dc,local_dc * 8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((int)local_58 + local_dc,local_dc * 8)" identifier (argument_list "((int)local_58 + local_dc,local_dc * 8)" ( (binary_expression "(int)local_58 + local_dc" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , (binary_expression "local_dc * 8" identifier * number_literal) )))))) ;) (do_statement "do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);" do (compound_statement "{\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  }" { (expression_statement "iVar4 = *piVar6;" (assignment_expression "iVar4 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (if_statement "if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }" if (parenthesized_expression "(iVar4 <= (int)local_7c[0])" ( (binary_expression "iVar4 <= (int)local_7c[0]" identifier <= (cast_expression "(int)local_7c[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_7c[0]" identifier [ number_literal ]))) )) (compound_statement "{\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }" { (expression_statement "puVar14 = (undefined1 *)((int)local_12c + 0x51);" (assignment_expression "puVar14 = (undefined1 *)((int)local_12c + 0x51)" identifier = (cast_expression "(undefined1 *)((int)local_12c + 0x51)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_12c + 0x51)" ( (binary_expression "(int)local_12c + 0x51" (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);" (assignment_expression "uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c)" identifier = (binary_expression "local_128 + (uint)((undefined1 *)0xffffffae < local_12c)" identifier + (call_expression "(uint)((undefined1 *)0xffffffae < local_12c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((undefined1 *)0xffffffae < local_12c)" ( (binary_expression "(undefined1 *)0xffffffae < local_12c" (cast_expression "(undefined1 *)0xffffffae" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))))) ;) (if_statement "if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }" { (expression_statement "pcVar15 = local_84;" (assignment_expression "pcVar15 = local_84" identifier = identifier) ;) (do_statement "do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);" do (compound_statement "{\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        }" { (expression_statement "uVar13 = (uint)*pcVar15;" (assignment_expression "uVar13 = (uint)*pcVar15" identifier = (binary_expression "(uint)*pcVar15" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "uVar11 = (int)puVar14 * 8;" (assignment_expression "uVar11 = (int)puVar14 * 8" identifier = (binary_expression "(int)puVar14 * 8" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "uVar20 = (uint)puVar14 >> 0x1d;" (assignment_expression "uVar20 = (uint)puVar14 >> 0x1d" identifier = (binary_expression "(uint)puVar14 >> 0x1d" (cast_expression "(uint)puVar14" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "uVar12 = uVar11 + uVar13;" (assignment_expression "uVar12 = uVar11 + uVar13" identifier = (binary_expression "uVar11 + uVar13" identifier + identifier)) ;) (expression_statement "bVar23 = CARRY4((uint)puVar14,uVar12);" (assignment_expression "bVar23 = CARRY4((uint)puVar14,uVar12)" identifier = (call_expression "CARRY4((uint)puVar14,uVar12)" identifier (argument_list "((uint)puVar14,uVar12)" ( (cast_expression "(uint)puVar14" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "puVar14 = puVar14 + uVar12;" (assignment_expression "puVar14 = puVar14 + uVar12" identifier = (binary_expression "puVar14 + uVar12" identifier + identifier)) ;) (expression_statement "uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;" (assignment_expression "uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23" identifier = (binary_expression "uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23" (binary_expression "uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13)" (binary_expression "uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f)" (binary_expression "uVar28 + (uVar28 << 3 | uVar20)" identifier + (parenthesized_expression "(uVar28 << 3 | uVar20)" ( (binary_expression "uVar28 << 3 | uVar20" (binary_expression "uVar28 << 3" identifier << number_literal) | identifier) ))) + (parenthesized_expression "((int)uVar13 >> 0x1f)" ( (binary_expression "(int)uVar13 >> 0x1f" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar11,uVar13)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar11,uVar13)" identifier (argument_list "(uVar11,uVar13)" ( identifier , identifier ))))) + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_84 + iVar4 != pcVar15)" ( (binary_expression "local_84 + iVar4 != pcVar15" (binary_expression "local_84 + iVar4" identifier + identifier) != identifier) )) ;) })) (expression_statement "local_ec = local_ec ^ (uint)puVar14;" (assignment_expression "local_ec = local_ec ^ (uint)puVar14" identifier = (binary_expression "local_ec ^ (uint)puVar14" identifier ^ (cast_expression "(uint)puVar14" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_e8 = local_e8 ^ uVar28;" (assignment_expression "local_e8 = local_e8 ^ uVar28" identifier = (binary_expression "local_e8 ^ uVar28" identifier ^ identifier)) ;) })) (expression_statement "piVar6 = piVar6 + 6;" (assignment_expression "piVar6 = piVar6 + 6" identifier = (binary_expression "piVar6 + 6" identifier + number_literal)) ;) (expression_statement "bVar23 = (undefined1 *)0xffffffae < local_12c;" (assignment_expression "bVar23 = (undefined1 *)0xffffffae < local_12c" identifier = (binary_expression "(undefined1 *)0xffffffae < local_12c" (cast_expression "(undefined1 *)0xffffffae" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier)) ;) (expression_statement "local_12c = (int *)((int)local_12c + 0x51);" (assignment_expression "local_12c = (int *)((int)local_12c + 0x51)" identifier = (cast_expression "(int *)((int)local_12c + 0x51)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_12c + 0x51)" ( (binary_expression "(int)local_12c + 0x51" (cast_expression "(int)local_12c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_128 = local_128 + (uint)bVar23;" (assignment_expression "local_128 = local_128 + (uint)bVar23" identifier = (binary_expression "local_128 + (uint)bVar23" identifier + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6)" ( (binary_expression "(int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6" (cast_expression "(int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18)" ( (binary_expression "*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18" (pointer_expression "*(int *)(param_1 + 0x100)" * (cast_expression "(int *)(param_1 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) + (binary_expression "*(int *)(param_1 + 0xfc) * 0x18" (pointer_expression "*(int *)(param_1 + 0xfc)" * (cast_expression "(int *)(param_1 + 0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xfc)" ( (binary_expression "param_1 + 0xfc" identifier + number_literal) )))) * number_literal)) ))) != identifier) )) ;) })) })) })) (if_statement "if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }" if (parenthesized_expression "(local_88 != 0)" ( (binary_expression "local_88 != 0" identifier != number_literal) )) (compound_statement "{\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }" { (expression_statement "(**(code **)(iVar3 + 0x10))(local_88);" (call_expression "(**(code **)(iVar3 + 0x10))(local_88)" (parenthesized_expression "(**(code **)(iVar3 + 0x10))" ( (pointer_expression "**(code **)(iVar3 + 0x10)" * (pointer_expression "*(code **)(iVar3 + 0x10)" * (cast_expression "(code **)(iVar3 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) ))))) )) (argument_list "(local_88)" ( identifier ))) ;) })) (if_statement "if (piVar6 != (int *)0x65) goto LAB_0013d4fe;" if (parenthesized_expression "(piVar6 != (int *)0x65)" ( (binary_expression "piVar6 != (int *)0x65" identifier != (cast_expression "(int *)0x65" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0013d4fe;" goto statement_identifier ;)) (expression_statement "iVar4 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = local_8c;" (assignment_expression "uVar5 = local_8c" identifier = identifier) ;) (if_statement "if (iVar4 <= (int)local_10c) goto LAB_0013d234;" if (parenthesized_expression "(iVar4 <= (int)local_10c)" ( (binary_expression "iVar4 <= (int)local_10c" identifier <= (cast_expression "(int)local_10c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0013d234;" goto statement_identifier ;)) (expression_statement "bVar23 = 0xfffffffe < local_dc;" (assignment_expression "bVar23 = 0xfffffffe < local_dc" identifier = (binary_expression "0xfffffffe < local_dc" number_literal < identifier)) ;) (expression_statement "local_dc = local_dc + 1;" (assignment_expression "local_dc = local_dc + 1" identifier = (binary_expression "local_dc + 1" identifier + number_literal)) ;) (expression_statement "local_d8 = local_d8 + (uint)bVar23;" (assignment_expression "local_d8 = local_d8 + (uint)bVar23" identifier = (binary_expression "local_d8 + (uint)bVar23" identifier + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "iVar9 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar28 = local_10c;" (assignment_expression "uVar28 = local_10c" identifier = identifier) ;) (expression_statement "bVar23 = 0xfffffffe < local_e4;" (assignment_expression "bVar23 = 0xfffffffe < local_e4" identifier = (binary_expression "0xfffffffe < local_e4" number_literal < identifier)) ;) (expression_statement "local_e4 = local_e4 + 1;" (assignment_expression "local_e4 = local_e4 + 1" identifier = (binary_expression "local_e4 + 1" identifier + number_literal)) ;) (expression_statement "local_e0 = local_e0 + (uint)bVar23;" (assignment_expression "local_e0 = local_e0 + (uint)bVar23" identifier = (binary_expression "local_e0 + (uint)bVar23" identifier + (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (*(char *)(iVar9 + local_10c) != '\0') break;" if (parenthesized_expression "(*(char *)(iVar9 + local_10c) != '\0')" ( (binary_expression "*(char *)(iVar9 + local_10c) != '\0'" (pointer_expression "*(char *)(iVar9 + local_10c)" * (cast_expression "(char *)(iVar9 + local_10c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + local_10c)" ( (binary_expression "iVar9 + local_10c" identifier + identifier) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "local_10c = local_10c + 1;" (assignment_expression "local_10c = local_10c + 1" identifier = (binary_expression "local_10c + 1" identifier + number_literal)) ;) (expression_statement "local_114 = uVar28;" (assignment_expression "local_114 = uVar28" identifier = identifier) ;) })) (expression_statement "local_10c = local_114 + 2;" (assignment_expression "local_10c = local_114 + 2" identifier = (binary_expression "local_114 + 2" identifier + number_literal)) ;) })) (expression_statement "local_114 = local_10c;" (assignment_expression "local_114 = local_10c" identifier = identifier) ;) }) while (parenthesized_expression "((int)local_114 < iVar4)" ( (binary_expression "(int)local_114 < iVar4" (cast_expression "(int)local_114" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) })) (goto_statement "goto LAB_0013d234;" goto statement_identifier ;) })) (expression_statement "FUN_000c0450(local_8c);" (call_expression "FUN_000c0450(local_8c)" identifier (argument_list "(local_8c)" ( identifier ))) ;) (if_statement "if (local_e8 == local_b4 && local_ec == local_d0) goto LAB_0013c0e0;" if (parenthesized_expression "(local_e8 == local_b4 && local_ec == local_d0)" ( (binary_expression "local_e8 == local_b4 && local_ec == local_d0" (binary_expression "local_e8 == local_b4" identifier == identifier) && (binary_expression "local_ec == local_d0" identifier == identifier)) )) (goto_statement "goto LAB_0013c0e0;" goto statement_identifier ;)) (expression_statement "local_f0 = (int *)0x10b;" (assignment_expression "local_f0 = (int *)0x10b" identifier = (cast_expression "(int *)0x10b" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0013ba71:\n  local_98 = local_f0;" statement_identifier : (expression_statement "local_98 = local_f0;" (assignment_expression "local_98 = local_f0" identifier = identifier) ;)) (labeled_statement "LAB_0013ba95:\n  FUN_000c0610(uVar5);" statement_identifier : (expression_statement "FUN_000c0610(uVar5);" (call_expression "FUN_000c0610(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;)) (expression_statement "*(undefined4 *)(param_1 + 0xf8) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xf8) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_00153870();\n  }" { (expression_statement "FUN_00153870();" (call_expression "FUN_00153870()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return local_98;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) & LIT) ))) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ]) + LIT) )))) & LIT) ))) )))) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) < LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) < LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) )) (break_statement break ;)) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;)) }))) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) }))) })))) }))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , LIT , (pointer_expression & IDENT) , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT))) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) != (call_expression IDENT (argument_list ( IDENT , IDENT )))) )) == (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) < LIT)) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) && (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (binary_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT + IDENT) + LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT + IDENT) + LIT) ]) + (subscript_expression IDENT [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , LIT , (pointer_expression & IDENT) , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , LIT , LIT , LIT , LIT , (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression & IDENT)) , (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT | IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT | IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression IDENT & LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT | IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression IDENT & LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }))) }))) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) ))) <= (unary_expression - (subscript_expression IDENT [ LIT ])))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )))) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ))))) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) | (binary_expression IDENT >> LIT)) )) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT * LIT) , IDENT ))))) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT * LIT) , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * LIT) + IDENT) + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) | (binary_expression IDENT >> LIT)) )) + IDENT) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT * LIT) , (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + IDENT) + (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) | (binary_expression IDENT >> LIT)) ))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT * LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT * LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | IDENT) ))) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) }))) })) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) , (binary_expression IDENT == LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) }))) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) }))) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) }) while (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) < LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) )) (break_statement break ;)) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) })) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) )))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT * LIT) ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) & LIT) ))) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ]) + LIT) )))) & LIT) ))) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) ))) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) & LIT) ))) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + IDENT) ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) })))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) & LIT) ))) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) & LIT) ))) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) != (call_expression IDENT (argument_list ( (binary_expression IDENT - IDENT) , IDENT )))) )) == (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - IDENT) ))) < LIT)) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT != IDENT) || (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT)) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) && (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) ))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) ;) })) })) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }))))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) })))) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT)) )) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT * LIT) , IDENT ))))) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT * LIT) , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) | (binary_expression IDENT >> LIT)) ))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT * LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) >> LIT) ))) + (binary_expression IDENT * LIT)) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) | (binary_expression IDENT >> LIT)) ))) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT * LIT) , IDENT ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT * LIT) )))))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT ))))) + (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT)) ))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) , (binary_expression IDENT * LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | IDENT) ))) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT ))))) + (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT)) ))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) , (binary_expression IDENT * LIT) )))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | IDENT) ))) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))) != IDENT) )) ;) })) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) != (char_literal ' escape_sequence ')) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) && (binary_expression IDENT == IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "int * FUN_0013b860(int param_1,int param_2,int *param_3,uint *param_4)\n\n{\n  ushort uVar1;\n  char cVar2;\n  int iVar3;\n  void *__s;\n  int iVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  int *__s_00;\n  undefined1 *puVar14;\n  char *pcVar15;\n  byte *pbVar16;\n  uint uVar17;\n  int *extraout_ECX;\n  int *extraout_ECX_00;\n  int *extraout_ECX_01;\n  int *extraout_ECX_02;\n  int *extraout_ECX_03;\n  int *extraout_ECX_04;\n  int *extraout_ECX_05;\n  int *extraout_ECX_06;\n  int iVar18;\n  byte *pbVar19;\n  int unaff_EBP;\n  uint uVar20;\n  int **ppiVar21;\n  byte *pbVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  byte bVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  uint uVar28;\n  int *__s_01;\n  int local_134;\n  int *local_12c;\n  int local_128;\n  int local_124;\n  uint local_114;\n  int local_110;\n  uint local_10c;\n  int *local_108;\n  uint local_104;\n  uint local_100;\n  int *local_f0;\n  uint local_ec;\n  uint local_e8;\n  uint local_e4;\n  int local_e0;\n  uint local_dc;\n  int local_d8;\n  uint local_d0;\n  uint local_b4;\n  int *local_98;\n  undefined4 local_94;\n  undefined4 local_8c;\n  int local_88;\n  char *local_84;\n  int local_80;\n  uint local_7c [5];\n  int *local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  int *local_58;\n  int local_54;\n  int **local_4c;\n  int local_48;\n  char *local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  bVar24 = 0;\n  FUN_0003a405();\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_94 = 0;\n  if (1 < param_2) {\n    if ((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')) {\n      iVar3 = FUN_0007f6d0();\n      iVar4 = FUN_0007f360();\n      if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }\nLAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba71;\n    }\n    piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4];\n    uVar1 = *(ushort *)(piVar6 + 2);\n    if ((uVar1 & 4) == 0) {\n      if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }\n    }\n    else {\n      iVar3 = *piVar6;\n    }\n    if (iVar3 < 0) {\n      local_98 = (int *)0x13;\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba95;\n    }\n  }\nLAB_0013b900:\n  iVar3 = FUN_00067fc0();\n  if ((iVar3 != 0) || (__s = (void *)FUN_00055780(), __s == (void *)0x0)) {\n    local_98 = (int *)0x7;\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    goto LAB_0013ba95;\n  }\n  iVar3 = *(int *)(param_1 + 0x18) + 1;\n  memset(__s,0,iVar3 * 8);\n  bVar23 = false;\n  if (*(int *)(param_1 + 0x108) == 0) {\n    local_98 = (int *)FUN_00101610();\n    piVar6 = local_58;\n    if (local_98 == (int *)0x0) {\n      iVar4 = FUN_00079820();\n      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }\n      FUN_000e7e00(local_58);\n      local_98 = (int *)FUN_000bfe40(local_58);\n      if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }\n  }\n  else {\n    local_98 = (int *)0x0;\n    if (param_2 < 2) {\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }\n    else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }\n    if (*(char *)(param_1 + 0xe8) != '\0') {\n      FUN_00111db0(__s,local_94);\n    }\n  }\nLAB_0013bb29:\n  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  }\n  else {\n    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }\n    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);\n    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n  }\n  goto LAB_0013ba95;\nLAB_0013d4fe:\n  FUN_000c0450(local_8c);\n  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  local_f0 = piVar6;\n  goto LAB_0013ba71;\nLAB_0013d234:\n  iVar4 = FUN_000e7e00(uVar5);\n  if (iVar4 == 100) {\n    FUN_0004c5d0();\n    uVar27 = FUN_00045540();\n    iVar18 = (int)((ulonglong)uVar27 >> 0x20);\n    uVar7 = (uint)uVar27;\n    FUN_0004c6c0();\n    iVar4 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x2c) == 0) {\n      uVar28 = 0;\n      iVar9 = 0;\n    }\n    else {\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }\n    uVar10 = uVar7 * 9 + uVar28;\n    iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28);\n    uVar7 = uVar10 * 9;\n    iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8);\n    uVar5 = local_8c;\n    if (0 < iVar4) {\n      local_114 = 0;\n      iVar9 = *(int *)(param_1 + 0x20);\n      do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);\n    }\n    goto LAB_0013d234;\n  }\n  FUN_000c0450(local_8c);\n  if (local_e8 == local_b4 && local_ec == local_d0) goto LAB_0013c0e0;\n  local_f0 = (int *)0x10b;\n  uVar5 = *(undefined4 *)(param_1 + 0xf8);\nLAB_0013ba71:\n  local_98 = local_f0;\nLAB_0013ba95:\n  FUN_000c0610(uVar5);\n  *(undefined4 *)(param_1 + 0xf8) = 0;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }\n  return local_98;\n}" (primitive_type "int") (pointer_declarator "* FUN_0013b860(int param_1,int param_2,int *param_3,uint *param_4)" (* "*") (function_declarator "FUN_0013b860(int param_1,int param_2,int *param_3,uint *param_4)" (identifier "FUN_0013b860") (parameter_list "(int param_1,int param_2,int *param_3,uint *param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint *param_4" (type_identifier "uint") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")")))) (compound_statement "{\n  ushort uVar1;\n  char cVar2;\n  int iVar3;\n  void *__s;\n  int iVar4;\n  undefined4 uVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  int *__s_00;\n  undefined1 *puVar14;\n  char *pcVar15;\n  byte *pbVar16;\n  uint uVar17;\n  int *extraout_ECX;\n  int *extraout_ECX_00;\n  int *extraout_ECX_01;\n  int *extraout_ECX_02;\n  int *extraout_ECX_03;\n  int *extraout_ECX_04;\n  int *extraout_ECX_05;\n  int *extraout_ECX_06;\n  int iVar18;\n  byte *pbVar19;\n  int unaff_EBP;\n  uint uVar20;\n  int **ppiVar21;\n  byte *pbVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  byte bVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  uint uVar28;\n  int *__s_01;\n  int local_134;\n  int *local_12c;\n  int local_128;\n  int local_124;\n  uint local_114;\n  int local_110;\n  uint local_10c;\n  int *local_108;\n  uint local_104;\n  uint local_100;\n  int *local_f0;\n  uint local_ec;\n  uint local_e8;\n  uint local_e4;\n  int local_e0;\n  uint local_dc;\n  int local_d8;\n  uint local_d0;\n  uint local_b4;\n  int *local_98;\n  undefined4 local_94;\n  undefined4 local_8c;\n  int local_88;\n  char *local_84;\n  int local_80;\n  uint local_7c [5];\n  int *local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  int *local_58;\n  int local_54;\n  int **local_4c;\n  int local_48;\n  char *local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  bVar24 = 0;\n  FUN_0003a405();\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_94 = 0;\n  if (1 < param_2) {\n    if ((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')) {\n      iVar3 = FUN_0007f6d0();\n      iVar4 = FUN_0007f360();\n      if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }\nLAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba71;\n    }\n    piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4];\n    uVar1 = *(ushort *)(piVar6 + 2);\n    if ((uVar1 & 4) == 0) {\n      if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }\n    }\n    else {\n      iVar3 = *piVar6;\n    }\n    if (iVar3 < 0) {\n      local_98 = (int *)0x13;\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba95;\n    }\n  }\nLAB_0013b900:\n  iVar3 = FUN_00067fc0();\n  if ((iVar3 != 0) || (__s = (void *)FUN_00055780(), __s == (void *)0x0)) {\n    local_98 = (int *)0x7;\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    goto LAB_0013ba95;\n  }\n  iVar3 = *(int *)(param_1 + 0x18) + 1;\n  memset(__s,0,iVar3 * 8);\n  bVar23 = false;\n  if (*(int *)(param_1 + 0x108) == 0) {\n    local_98 = (int *)FUN_00101610();\n    piVar6 = local_58;\n    if (local_98 == (int *)0x0) {\n      iVar4 = FUN_00079820();\n      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }\n      FUN_000e7e00(local_58);\n      local_98 = (int *)FUN_000bfe40(local_58);\n      if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }\n  }\n  else {\n    local_98 = (int *)0x0;\n    if (param_2 < 2) {\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }\n    else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }\n    if (*(char *)(param_1 + 0xe8) != '\0') {\n      FUN_00111db0(__s,local_94);\n    }\n  }\nLAB_0013bb29:\n  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  }\n  else {\n    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }\n    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);\n    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n  }\n  goto LAB_0013ba95;\nLAB_0013d4fe:\n  FUN_000c0450(local_8c);\n  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  local_f0 = piVar6;\n  goto LAB_0013ba71;\nLAB_0013d234:\n  iVar4 = FUN_000e7e00(uVar5);\n  if (iVar4 == 100) {\n    FUN_0004c5d0();\n    uVar27 = FUN_00045540();\n    iVar18 = (int)((ulonglong)uVar27 >> 0x20);\n    uVar7 = (uint)uVar27;\n    FUN_0004c6c0();\n    iVar4 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x2c) == 0) {\n      uVar28 = 0;\n      iVar9 = 0;\n    }\n    else {\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }\n    uVar10 = uVar7 * 9 + uVar28;\n    iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28);\n    uVar7 = uVar10 * 9;\n    iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8);\n    uVar5 = local_8c;\n    if (0 < iVar4) {\n      local_114 = 0;\n      iVar9 = *(int *)(param_1 + 0x20);\n      do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);\n    }\n    goto LAB_0013d234;\n  }\n  FUN_000c0450(local_8c);\n  if (local_e8 == local_b4 && local_ec == local_d0) goto LAB_0013c0e0;\n  local_f0 = (int *)0x10b;\n  uVar5 = *(undefined4 *)(param_1 + 0xf8);\nLAB_0013ba71:\n  local_98 = local_f0;\nLAB_0013ba95:\n  FUN_000c0610(uVar5);\n  *(undefined4 *)(param_1 + 0xf8) = 0;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }\n  return local_98;\n}" ({ "{") (declaration "ushort uVar1;" (type_identifier "ushort") (identifier "uVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "void *__s;" (primitive_type "void") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "int *__s_00;" (primitive_type "int") (pointer_declarator "*__s_00" (* "*") (identifier "__s_00")) (; ";")) (declaration "undefined1 *puVar14;" (type_identifier "undefined1") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "char *pcVar15;" (primitive_type "char") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "int *extraout_ECX;" (primitive_type "int") (pointer_declarator "*extraout_ECX" (* "*") (identifier "extraout_ECX")) (; ";")) (declaration "int *extraout_ECX_00;" (primitive_type "int") (pointer_declarator "*extraout_ECX_00" (* "*") (identifier "extraout_ECX_00")) (; ";")) (declaration "int *extraout_ECX_01;" (primitive_type "int") (pointer_declarator "*extraout_ECX_01" (* "*") (identifier "extraout_ECX_01")) (; ";")) (declaration "int *extraout_ECX_02;" (primitive_type "int") (pointer_declarator "*extraout_ECX_02" (* "*") (identifier "extraout_ECX_02")) (; ";")) (declaration "int *extraout_ECX_03;" (primitive_type "int") (pointer_declarator "*extraout_ECX_03" (* "*") (identifier "extraout_ECX_03")) (; ";")) (declaration "int *extraout_ECX_04;" (primitive_type "int") (pointer_declarator "*extraout_ECX_04" (* "*") (identifier "extraout_ECX_04")) (; ";")) (declaration "int *extraout_ECX_05;" (primitive_type "int") (pointer_declarator "*extraout_ECX_05" (* "*") (identifier "extraout_ECX_05")) (; ";")) (declaration "int *extraout_ECX_06;" (primitive_type "int") (pointer_declarator "*extraout_ECX_06" (* "*") (identifier "extraout_ECX_06")) (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "uint uVar20;" (type_identifier "uint") (identifier "uVar20") (; ";")) (declaration "int **ppiVar21;" (primitive_type "int") (pointer_declarator "**ppiVar21" (* "*") (pointer_declarator "*ppiVar21" (* "*") (identifier "ppiVar21"))) (; ";")) (declaration "byte *pbVar22;" (type_identifier "byte") (pointer_declarator "*pbVar22" (* "*") (identifier "pbVar22")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar23;" (primitive_type "bool") (identifier "bVar23") (; ";")) (declaration "byte bVar24;" (type_identifier "byte") (identifier "bVar24") (; ";")) (declaration "longlong lVar25;" (type_identifier "longlong") (identifier "lVar25") (; ";")) (declaration "longlong lVar26;" (type_identifier "longlong") (identifier "lVar26") (; ";")) (declaration "undefined8 uVar27;" (type_identifier "undefined8") (identifier "uVar27") (; ";")) (declaration "uint uVar28;" (type_identifier "uint") (identifier "uVar28") (; ";")) (declaration "int *__s_01;" (primitive_type "int") (pointer_declarator "*__s_01" (* "*") (identifier "__s_01")) (; ";")) (declaration "int local_134;" (primitive_type "int") (identifier "local_134") (; ";")) (declaration "int *local_12c;" (primitive_type "int") (pointer_declarator "*local_12c" (* "*") (identifier "local_12c")) (; ";")) (declaration "int local_128;" (primitive_type "int") (identifier "local_128") (; ";")) (declaration "int local_124;" (primitive_type "int") (identifier "local_124") (; ";")) (declaration "uint local_114;" (type_identifier "uint") (identifier "local_114") (; ";")) (declaration "int local_110;" (primitive_type "int") (identifier "local_110") (; ";")) (declaration "uint local_10c;" (type_identifier "uint") (identifier "local_10c") (; ";")) (declaration "int *local_108;" (primitive_type "int") (pointer_declarator "*local_108" (* "*") (identifier "local_108")) (; ";")) (declaration "uint local_104;" (type_identifier "uint") (identifier "local_104") (; ";")) (declaration "uint local_100;" (type_identifier "uint") (identifier "local_100") (; ";")) (declaration "int *local_f0;" (primitive_type "int") (pointer_declarator "*local_f0" (* "*") (identifier "local_f0")) (; ";")) (declaration "uint local_ec;" (type_identifier "uint") (identifier "local_ec") (; ";")) (declaration "uint local_e8;" (type_identifier "uint") (identifier "local_e8") (; ";")) (declaration "uint local_e4;" (type_identifier "uint") (identifier "local_e4") (; ";")) (declaration "int local_e0;" (primitive_type "int") (identifier "local_e0") (; ";")) (declaration "uint local_dc;" (type_identifier "uint") (identifier "local_dc") (; ";")) (declaration "int local_d8;" (primitive_type "int") (identifier "local_d8") (; ";")) (declaration "uint local_d0;" (type_identifier "uint") (identifier "local_d0") (; ";")) (declaration "uint local_b4;" (type_identifier "uint") (identifier "local_b4") (; ";")) (declaration "int *local_98;" (primitive_type "int") (pointer_declarator "*local_98" (* "*") (identifier "local_98")) (; ";")) (declaration "undefined4 local_94;" (type_identifier "undefined4") (identifier "local_94") (; ";")) (declaration "undefined4 local_8c;" (type_identifier "undefined4") (identifier "local_8c") (; ";")) (declaration "int local_88;" (primitive_type "int") (identifier "local_88") (; ";")) (declaration "char *local_84;" (primitive_type "char") (pointer_declarator "*local_84" (* "*") (identifier "local_84")) (; ";")) (declaration "int local_80;" (primitive_type "int") (identifier "local_80") (; ";")) (declaration "uint local_7c [5];" (type_identifier "uint") (array_declarator "local_7c [5]" (identifier "local_7c") ([ "[") (number_literal "5") (] "]")) (; ";")) (declaration "int *local_68;" (primitive_type "int") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (declaration "undefined4 local_64;" (type_identifier "undefined4") (identifier "local_64") (; ";")) (declaration "undefined4 local_60;" (type_identifier "undefined4") (identifier "local_60") (; ";")) (declaration "undefined4 local_5c;" (type_identifier "undefined4") (identifier "local_5c") (; ";")) (declaration "int *local_58;" (primitive_type "int") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "int local_54;" (primitive_type "int") (identifier "local_54") (; ";")) (declaration "int **local_4c;" (primitive_type "int") (pointer_declarator "**local_4c" (* "*") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c"))) (; ";")) (declaration "int local_48;" (primitive_type "int") (identifier "local_48") (; ";")) (declaration "char *local_30;" (primitive_type "char") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "bVar24 = 0;" (assignment_expression "bVar24 = 0" (identifier "bVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0003a405();" (call_expression "FUN_0003a405()" (identifier "FUN_0003a405") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" (identifier "local_94") (= "=") (number_literal "0")) (; ";")) (if_statement "if (1 < param_2) {\n    if ((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')) {\n      iVar3 = FUN_0007f6d0();\n      iVar4 = FUN_0007f360();\n      if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }\nLAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba71;\n    }\n    piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4];\n    uVar1 = *(ushort *)(piVar6 + 2);\n    if ((uVar1 & 4) == 0) {\n      if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }\n    }\n    else {\n      iVar3 = *piVar6;\n    }\n    if (iVar3 < 0) {\n      local_98 = (int *)0x13;\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba95;\n    }\n  }" (if "if") (parenthesized_expression "(1 < param_2)" (( "(") (binary_expression "1 < param_2" (number_literal "1") (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n    if ((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')) {\n      iVar3 = FUN_0007f6d0();\n      iVar4 = FUN_0007f360();\n      if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }\nLAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba71;\n    }\n    piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4];\n    uVar1 = *(ushort *)(piVar6 + 2);\n    if ((uVar1 & 4) == 0) {\n      if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }\n    }\n    else {\n      iVar3 = *piVar6;\n    }\n    if (iVar3 < 0) {\n      local_98 = (int *)0x13;\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba95;\n    }\n  }" ({ "{") (if_statement "if ((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')) {\n      iVar3 = FUN_0007f6d0();\n      iVar4 = FUN_0007f360();\n      if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }\nLAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba71;\n    }" (if "if") (parenthesized_expression "((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05'))" (( "(") (binary_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&\n       (*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')" (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05')" (( "(") (binary_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" (* "*") (cast_expression "(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" (( "(") (binary_expression "unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" (identifier "unaff_EBP") (+ "+") (number_literal "0x2847a")) (+ "+") (parenthesized_expression "(*(ushort *)(*param_3 + 8) & 0x1f)" (( "(") (binary_expression "*(ushort *)(*param_3 + 8) & 0x1f" (pointer_expression "*(ushort *)(*param_3 + 8)" (* "*") (cast_expression "(ushort *)(*param_3 + 8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_3 + 8)" (( "(") (binary_expression "*param_3 + 8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (== "==") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')" (( "(") (binary_expression "*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f))" (* "*") (cast_expression "(char *)(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f))" (( "(") (binary_expression "unaff_EBP + 0x2847a +\n                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" (identifier "unaff_EBP") (+ "+") (number_literal "0x2847a")) (+ "+") (parenthesized_expression "(*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)" (( "(") (binary_expression "*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f" (pointer_expression "*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8)" (* "*") (cast_expression "(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3[*(int *)(param_1 + 0x18) + 2] + 8)" (( "(") (binary_expression "param_3[*(int *)(param_1 + 0x18) + 2] + 8" (subscript_expression "param_3[*(int *)(param_1 + 0x18) + 2]" (identifier "param_3") ([ "[") (binary_expression "*(int *)(param_1 + 0x18) + 2" (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "2")) (] "]")) (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (!= "!=") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      iVar3 = FUN_0007f6d0();\n      iVar4 = FUN_0007f360();\n      if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }\n      if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }\nLAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba71;\n    }" ({ "{") (expression_statement "iVar3 = FUN_0007f6d0();" (assignment_expression "iVar3 = FUN_0007f6d0()" (identifier "iVar3") (= "=") (call_expression "FUN_0007f6d0()" (identifier "FUN_0007f6d0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar4 = FUN_0007f360();" (assignment_expression "iVar4 = FUN_0007f360()" (identifier "iVar4") (= "=") (call_expression "FUN_0007f360()" (identifier "FUN_0007f360") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_f0 = (int *)0x7;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }" ({ "{") (expression_statement "local_f0 = (int *)0x7;" (assignment_expression "local_f0 = (int *)0x7" (identifier "local_f0") (= "=") (cast_expression "(int *)0x7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7"))) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (goto_statement "goto LAB_0013ba71;" (goto "goto") (statement_identifier "LAB_0013ba71") (; ";")) (} "}"))) (if_statement "if (iVar4 == 8) {\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }" (if "if") (parenthesized_expression "(iVar4 == 8)" (( "(") (binary_expression "iVar4 == 8" (identifier "iVar4") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }\nLAB_0013be5a:\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }\nLAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;\n        uVar5 = *(undefined4 *)(param_1 + 0xf8);\n        goto LAB_0013ba71;\n      }" ({ "{") (expression_statement "iVar4 = FUN_00044730();" (assignment_expression "iVar4 = FUN_00044730()" (identifier "iVar4") (= "=") (call_expression "FUN_00044730()" (identifier "FUN_00044730") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_f0 = (int *)FUN_00139450();\n          uVar5 = *(undefined4 *)(param_1 + 0xf8);\n          goto LAB_0013ba71;\n        }" ({ "{") (expression_statement "local_f0 = (int *)FUN_00139450();" (assignment_expression "local_f0 = (int *)FUN_00139450()" (identifier "local_f0") (= "=") (cast_expression "(int *)FUN_00139450()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00139450()" (identifier "FUN_00139450") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (goto_statement "goto LAB_0013ba71;" (goto "goto") (statement_identifier "LAB_0013ba71") (; ";")) (} "}"))) (labeled_statement "LAB_0013be5a:\n        iVar4 = FUN_00044730();" (statement_identifier "LAB_0013be5a") (: ":") (expression_statement "iVar4 = FUN_00044730();" (assignment_expression "iVar4 = FUN_00044730()" (identifier "iVar4") (= "=") (call_expression "FUN_00044730()" (identifier "FUN_00044730") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar4 == 0) {\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);\n          pcVar15 = (char *)(iVar3 + 6);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }\n        }" ({ "{") (labeled_statement "LAB_0013be74:\n          cVar2 = *(char *)(iVar3 + 6);" (statement_identifier "LAB_0013be74") (: ":") (expression_statement "cVar2 = *(char *)(iVar3 + 6);" (assignment_expression "cVar2 = *(char *)(iVar3 + 6)" (identifier "cVar2") (= "=") (pointer_expression "*(char *)(iVar3 + 6)" (* "*") (cast_expression "(char *)(iVar3 + 6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 6)" (( "(") (binary_expression "iVar3 + 6" (identifier "iVar3") (+ "+") (number_literal "6")) () ")"))))) (; ";"))) (expression_statement "pcVar15 = (char *)(iVar3 + 6);" (assignment_expression "pcVar15 = (char *)(iVar3 + 6)" (identifier "pcVar15") (= "=") (cast_expression "(char *)(iVar3 + 6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 6)" (( "(") (binary_expression "iVar3 + 6" (identifier "iVar3") (+ "+") (number_literal "6")) () ")")))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }\n          else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }" (if "if") (parenthesized_expression "((byte)(cVar2 - 0x30U) < 10)" (( "(") (binary_expression "(byte)(cVar2 - 0x30U) < 10" (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar2 - 0x30U)" (( "(") (binary_expression "cVar2 - 0x30U" (identifier "cVar2") (- "-") (number_literal "0x30U")) () ")"))) (< "<") (number_literal "10")) () ")")) (compound_statement "{\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);\n          }" ({ "{") (do_statement "do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            } while (iVar3 < 0xccccccb);" (do "do") (compound_statement "{\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;\n            }" ({ "{") (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + 1" (identifier "pcVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = cVar2 + -0x30 + iVar3 * 10;" (assignment_expression "iVar3 = cVar2 + -0x30 + iVar3 * 10" (identifier "iVar3") (= "=") (binary_expression "cVar2 + -0x30 + iVar3 * 10" (binary_expression "cVar2 + -0x30" (identifier "cVar2") (+ "+") (number_literal "-0x30")) (+ "+") (binary_expression "iVar3 * 10" (identifier "iVar3") (* "*") (number_literal "10")))) (; ";")) (expression_statement "cVar2 = *pcVar15;" (assignment_expression "cVar2 = *pcVar15" (identifier "cVar2") (= "=") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15"))) (; ";")) (if_statement "if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;" (if "if") (parenthesized_expression "(9 < (byte)(cVar2 - 0x30U))" (( "(") (binary_expression "9 < (byte)(cVar2 - 0x30U)" (number_literal "9") (< "<") (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar2 - 0x30U)" (( "(") (binary_expression "cVar2 - 0x30U" (identifier "cVar2") (- "-") (number_literal "0x30U")) () ")")))) () ")")) (goto_statement "goto LAB_0013beb1;" (goto "goto") (statement_identifier "LAB_0013beb1") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(iVar3 < 0xccccccb)" (( "(") (binary_expression "iVar3 < 0xccccccb" (identifier "iVar3") (< "<") (number_literal "0xccccccb")) () ")")) (; ";")) (} "}")) (else_clause "else {\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }" (else "else") (compound_statement "{\nLAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }\n          }" ({ "{") (labeled_statement "LAB_0013beb1:\n            if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }" (statement_identifier "LAB_0013beb1") (: ":") (if_statement "if (cVar2 == ',') {\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }\n            else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }" (if "if") (parenthesized_expression "(cVar2 == ',')" (( "(") (binary_expression "cVar2 == ','" (identifier "cVar2") (== "==") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (compound_statement "{\n              cVar2 = pcVar15[1];\n              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }\n            }" ({ "{") (expression_statement "cVar2 = pcVar15[1];" (assignment_expression "cVar2 = pcVar15[1]" (identifier "cVar2") (= "=") (subscript_expression "pcVar15[1]" (identifier "pcVar15") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }" (if "if") (parenthesized_expression "((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10))" (( "(") (binary_expression "(cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)" (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)" (( "(") (comma_expression "pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10" (assignment_expression "pcVar15 = pcVar15 + 1" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + 1" (identifier "pcVar15") (+ "+") (number_literal "1"))) (, ",") (binary_expression "(byte)(cVar2 - 0x30U) < 10" (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar2 - 0x30U)" (( "(") (binary_expression "cVar2 - 0x30U" (identifier "cVar2") (- "-") (number_literal "0x30U")) () ")"))) (< "<") (number_literal "10"))) () ")"))) () ")")) (compound_statement "{\n                iVar3 = 0;\n                do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);\n                if (1 < iVar3) goto joined_r0x0013cd82;\n              }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                } while (iVar3 < 0xccccccb);" (do "do") (compound_statement "{\n                  pcVar15 = pcVar15 + 1;\n                  iVar3 = cVar2 + -0x30 + iVar3 * 10;\n                  cVar2 = *pcVar15;\n                  if (9 < (byte)(cVar2 - 0x30U)) break;\n                }" ({ "{") (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + 1" (identifier "pcVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = cVar2 + -0x30 + iVar3 * 10;" (assignment_expression "iVar3 = cVar2 + -0x30 + iVar3 * 10" (identifier "iVar3") (= "=") (binary_expression "cVar2 + -0x30 + iVar3 * 10" (binary_expression "cVar2 + -0x30" (identifier "cVar2") (+ "+") (number_literal "-0x30")) (+ "+") (binary_expression "iVar3 * 10" (identifier "iVar3") (* "*") (number_literal "10")))) (; ";")) (expression_statement "cVar2 = *pcVar15;" (assignment_expression "cVar2 = *pcVar15" (identifier "cVar2") (= "=") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15"))) (; ";")) (if_statement "if (9 < (byte)(cVar2 - 0x30U)) break;" (if "if") (parenthesized_expression "(9 < (byte)(cVar2 - 0x30U))" (( "(") (binary_expression "9 < (byte)(cVar2 - 0x30U)" (number_literal "9") (< "<") (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar2 - 0x30U)" (( "(") (binary_expression "cVar2 - 0x30U" (identifier "cVar2") (- "-") (number_literal "0x30U")) () ")")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(iVar3 < 0xccccccb)" (( "(") (binary_expression "iVar3 < 0xccccccb" (identifier "iVar3") (< "<") (number_literal "0xccccccb")) () ")")) (; ";")) (if_statement "if (1 < iVar3) goto joined_r0x0013cd82;" (if "if") (parenthesized_expression "(1 < iVar3)" (( "(") (binary_expression "1 < iVar3" (number_literal "1") (< "<") (identifier "iVar3")) () ")")) (goto_statement "goto joined_r0x0013cd82;" (goto "goto") (statement_identifier "joined_r0x0013cd82") (; ";"))) (} "}"))) (} "}")) (else_clause "else {\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }" (else "else") (compound_statement "{\njoined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }\n            }" ({ "{") (labeled_statement "joined_r0x0013cd82:\n              if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }" (statement_identifier "joined_r0x0013cd82") (: ":") (if_statement "if (cVar2 == '\0') {\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                local_58 = (int *)0x0;\n                if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }\n                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));\n                *(undefined4 *)(param_1 + 0xf8) = 0;\n                uVar5 = 0;\n                local_f0 = local_58;\n                goto LAB_0013ba71;\n              }" ({ "{") (expression_statement "local_58 = (int *)0x0;" (assignment_expression "local_58 = (int *)0x0" (identifier "local_58") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (*(char *)(param_1 + 0xe9) == '\0') {\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }\n                else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0xe9) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0xe9) == '\0'" (pointer_expression "*(char *)(param_1 + 0xe9)" (* "*") (cast_expression "(char *)(param_1 + 0xe9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe9)" (( "(") (binary_expression "param_1 + 0xe9" (identifier "param_1") (+ "+") (number_literal "0xe9")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n                  if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }\n                }" ({ "{") (expression_statement "FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));" (call_expression "FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14))" (identifier "FUN_00107d80") (argument_list "(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14))" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (binary_expression "unaff_EBP + 0x324ae" (identifier "unaff_EBP") (+ "+") (number_literal "0x324ae")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x14)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) () ")"))) (; ";")) (if_statement "if (local_58 == (int *)0x0) {\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }" (if "if") (parenthesized_expression "(local_58 == (int *)0x0)" (( "(") (binary_expression "local_58 == (int *)0x0" (identifier "local_58") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    *(undefined1 *)(param_1 + 0xe9) = 1;\n                    goto LAB_0013bf22;\n                  }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xe9) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xe9) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xe9)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xe9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe9)" (( "(") (binary_expression "param_1 + 0xe9" (identifier "param_1") (+ "+") (number_literal "0xe9")) () ")")))) (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0013bf22;" (goto "goto") (statement_identifier "LAB_0013bf22") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }" (else "else") (compound_statement "{\nLAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();\n                }" ({ "{") (labeled_statement "LAB_0013bf22:\n                  local_58 = (int *)FUN_0012d940();" (statement_identifier "LAB_0013bf22") (: ":") (expression_statement "local_58 = (int *)FUN_0012d940();" (assignment_expression "local_58 = (int *)FUN_0012d940()" (identifier "local_58") (= "=") (cast_expression "(int *)FUN_0012d940()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0012d940()" (identifier "FUN_0012d940") (argument_list "()" (( "(") () ")"))))) (; ";"))) (} "}")))) (expression_statement "FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));" (call_expression "FUN_000c0610(*(undefined4 *)(param_1 + 0xf8))" (identifier "FUN_000c0610") (argument_list "(*(undefined4 *)(param_1 + 0xf8))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")")))) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0xf8) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xf8) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_f0 = local_58;" (assignment_expression "local_f0 = local_58" (identifier "local_f0") (= "=") (identifier "local_58")) (; ";")) (goto_statement "goto LAB_0013ba71;" (goto "goto") (statement_identifier "LAB_0013ba71") (; ";")) (} "}")))) (} "}"))))) (} "}")))) (} "}"))) (labeled_statement "LAB_0013ba5f:\n        local_f0 = (int *)&DAT_00000001;" (statement_identifier "LAB_0013ba5f") (: ":") (expression_statement "local_f0 = (int *)&DAT_00000001;" (assignment_expression "local_f0 = (int *)&DAT_00000001" (identifier "local_f0") (= "=") (cast_expression "(int *)&DAT_00000001" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000001" (& "&") (identifier "DAT_00000001")))) (; ";"))) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (goto_statement "goto LAB_0013ba71;" (goto "goto") (statement_identifier "LAB_0013ba71") (; ";")) (} "}"))) (if_statement "if (iVar4 == 7) {\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }\n      else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }" (if "if") (parenthesized_expression "(iVar4 == 7)" (( "(") (binary_expression "iVar4 == 7" (identifier "iVar4") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n        iVar4 = FUN_00044730();\n        if (iVar4 != 0) goto LAB_0013be5a;\n        local_f0 = (int *)FUN_0010da50();\n        local_68 = local_f0;\n        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n        local_58 = (int *)0x0;\n        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n        piVar6 = extraout_ECX;\n        if (iVar3 == 0) goto LAB_0013d10b;\n        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);\n        FUN_00044000(iVar3);\n        piVar6 = local_68;\n        if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }\n        if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }\n        FUN_00044000(__s_01);\n        if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }\n        local_f0 = local_68;\n      }" ({ "{") (expression_statement "iVar4 = FUN_00044730();" (assignment_expression "iVar4 = FUN_00044730()" (identifier "iVar4") (= "=") (call_expression "FUN_00044730()" (identifier "FUN_00044730") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) goto LAB_0013be5a;" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0013be5a;" (goto "goto") (statement_identifier "LAB_0013be5a") (; ";"))) (expression_statement "local_f0 = (int *)FUN_0010da50();" (assignment_expression "local_f0 = (int *)FUN_0010da50()" (identifier "local_f0") (= "=") (cast_expression "(int *)FUN_0010da50()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0010da50()" (identifier "FUN_0010da50") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_68 = local_f0;" (assignment_expression "local_68 = local_f0" (identifier "local_68") (= "=") (identifier "local_f0")) (; ";")) (if_statement "if (local_f0 != (int *)0x0) goto LAB_0013c0e0;" (if "if") (parenthesized_expression "(local_f0 != (int *)0x0)" (( "(") (binary_expression "local_f0 != (int *)0x0" (identifier "local_f0") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0013c0e0;" (goto "goto") (statement_identifier "LAB_0013c0e0") (; ";"))) (expression_statement "local_58 = (int *)0x0;" (assignment_expression "local_58 = (int *)0x0" (identifier "local_58") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));" (assignment_expression "iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc))" (identifier "iVar3") (= "=") (call_expression "FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc))" (identifier "FUN_000a3060") (argument_list "(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc))" (( "(") (binary_expression "unaff_EBP + 0x230e7" (identifier "unaff_EBP") (+ "+") (number_literal "0x230e7")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0xdc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xdc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xdc)" (( "(") (binary_expression "param_1 + 0xdc" (identifier "param_1") (+ "+") (number_literal "0xdc")) () ")")))) () ")")))) (; ";")) (expression_statement "piVar6 = extraout_ECX;" (assignment_expression "piVar6 = extraout_ECX" (identifier "piVar6") (= "=") (identifier "extraout_ECX")) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_0013d10b;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0013d10b;" (goto "goto") (statement_identifier "LAB_0013d10b") (; ";"))) (expression_statement "local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);" (assignment_expression "local_68 = (int *)FUN_00100700(0x80,0,&local_58,0)" (identifier "local_68") (= "=") (cast_expression "(int *)FUN_00100700(0x80,0,&local_58,0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00100700(0x80,0,&local_58,0)" (identifier "FUN_00100700") (argument_list "(0x80,0,&local_58,0)" (( "(") (number_literal "0x80") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "FUN_00044000(iVar3);" (call_expression "FUN_00044000(iVar3)" (identifier "FUN_00044000") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "piVar6 = local_68;" (assignment_expression "piVar6 = local_68" (identifier "piVar6") (= "=") (identifier "local_68")) (; ";")) (if_statement "if (local_68 == (int *)0x0) {\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }\n        else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }" (if "if") (parenthesized_expression "(local_68 == (int *)0x0)" (( "(") (binary_expression "local_68 == (int *)0x0" (identifier "local_68") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          iVar3 = *(int *)(param_1 + 0x18);\n          iVar4 = FUN_00067fc0();\n          piVar6 = extraout_ECX_00;\n          if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }\n          __s_00 = (int *)FUN_00055780();\n          piVar6 = extraout_ECX_01;\n          if (__s_00 == (int *)0x0) goto LAB_0013d10b;\n          __s_01 = __s_00;\n          memset(__s_00,0,(iVar3 + 1) * 0xc);\n          iVar3 = *(int *)(param_1 + 0x18);\n          local_108 = __s_00 + iVar3 * 2 + 2;\n          local_f0 = (int *)0x0;\n          piVar6 = extraout_ECX_02;\n          while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }\n        }" ({ "{") (expression_statement "iVar3 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x18)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "iVar4 = FUN_00067fc0();" (assignment_expression "iVar4 = FUN_00067fc0()" (identifier "iVar4") (= "=") (call_expression "FUN_00067fc0()" (identifier "FUN_00067fc0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar6 = extraout_ECX_00;" (assignment_expression "piVar6 = extraout_ECX_00" (identifier "piVar6") (= "=") (identifier "extraout_ECX_00")) (; ";")) (if_statement "if (iVar4 != 0) {\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0013d10b:\n            local_68 = (int *)0x7;\n            goto LAB_0013d116;\n          }" ({ "{") (labeled_statement "LAB_0013d10b:\n            local_68 = (int *)0x7;" (statement_identifier "LAB_0013d10b") (: ":") (expression_statement "local_68 = (int *)0x7;" (assignment_expression "local_68 = (int *)0x7" (identifier "local_68") (= "=") (cast_expression "(int *)0x7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7"))) (; ";"))) (goto_statement "goto LAB_0013d116;" (goto "goto") (statement_identifier "LAB_0013d116") (; ";")) (} "}"))) (expression_statement "__s_00 = (int *)FUN_00055780();" (assignment_expression "__s_00 = (int *)FUN_00055780()" (identifier "__s_00") (= "=") (cast_expression "(int *)FUN_00055780()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00055780()" (identifier "FUN_00055780") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "piVar6 = extraout_ECX_01;" (assignment_expression "piVar6 = extraout_ECX_01" (identifier "piVar6") (= "=") (identifier "extraout_ECX_01")) (; ";")) (if_statement "if (__s_00 == (int *)0x0) goto LAB_0013d10b;" (if "if") (parenthesized_expression "(__s_00 == (int *)0x0)" (( "(") (binary_expression "__s_00 == (int *)0x0" (identifier "__s_00") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0013d10b;" (goto "goto") (statement_identifier "LAB_0013d10b") (; ";"))) (expression_statement "__s_01 = __s_00;" (assignment_expression "__s_01 = __s_00" (identifier "__s_01") (= "=") (identifier "__s_00")) (; ";")) (expression_statement "memset(__s_00,0,(iVar3 + 1) * 0xc);" (call_expression "memset(__s_00,0,(iVar3 + 1) * 0xc)" (identifier "memset") (argument_list "(__s_00,0,(iVar3 + 1) * 0xc)" (( "(") (identifier "__s_00") (, ",") (number_literal "0") (, ",") (binary_expression "(iVar3 + 1) * 0xc" (parenthesized_expression "(iVar3 + 1)" (( "(") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "0xc")) () ")"))) (; ";")) (expression_statement "iVar3 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x18)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "local_108 = __s_00 + iVar3 * 2 + 2;" (assignment_expression "local_108 = __s_00 + iVar3 * 2 + 2" (identifier "local_108") (= "=") (binary_expression "__s_00 + iVar3 * 2 + 2" (binary_expression "__s_00 + iVar3 * 2" (identifier "__s_00") (+ "+") (binary_expression "iVar3 * 2" (identifier "iVar3") (* "*") (number_literal "2"))) (+ "+") (number_literal "2"))) (; ";")) (expression_statement "local_f0 = (int *)0x0;" (assignment_expression "local_f0 = (int *)0x0" (identifier "local_f0") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar6 = extraout_ECX_02;" (assignment_expression "piVar6 = extraout_ECX_02" (identifier "piVar6") (= "=") (identifier "extraout_ECX_02")) (; ";")) (while_statement "while ((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }" (while "while") (parenthesized_expression "((local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100)))" (( "(") (parenthesized_expression "(local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))" (( "(") (binary_expression "local_68 == (int *)0x0 &&\n                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100)" (binary_expression "local_68 == (int *)0x0" (identifier "local_68") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (parenthesized_expression "(iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100)" (( "(") (comma_expression "iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100" (assignment_expression "iVar4 = FUN_000e7e00(local_58)" (identifier "iVar4") (= "=") (call_expression "FUN_000e7e00(local_58)" (identifier "FUN_000e7e00") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")")))) (, ",") (comma_expression "piVar6 = extraout_ECX_03, iVar4 == 100" (assignment_expression "piVar6 = extraout_ECX_03" (identifier "piVar6") (= "=") (identifier "extraout_ECX_03")) (, ",") (binary_expression "iVar4 == 100" (identifier "iVar4") (== "==") (number_literal "100")))) () ")"))) () ")")) () ")")) (compound_statement "{\n            local_134 = 0;\n            if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }\n            lVar25 = FUN_0005b180();\n            iVar18 = (int)((ulonglong)lVar25 >> 0x20);\n            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));\n            iVar4 = iVar18 - *(int *)(param_1 + 0x110);\n            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }\n            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);\n            piVar6 = __s_01;\n            if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }\n          }" ({ "{") (expression_statement "local_134 = 0;" (assignment_expression "local_134 = 0" (identifier "local_134") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(int *)(param_1 + 0x2c) != 0) {\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x2c) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x2c) != 0" (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              FUN_0004c5d0();\n              local_134 = FUN_00045540();\n              FUN_0004c6c0();\n            }" ({ "{") (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" (identifier "FUN_0004c5d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_134 = FUN_00045540();" (assignment_expression "local_134 = FUN_00045540()" (identifier "local_134") (= "=") (call_expression "FUN_00045540()" (identifier "FUN_00045540") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" (identifier "FUN_0004c6c0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "lVar25 = FUN_0005b180();" (assignment_expression "lVar25 = FUN_0005b180()" (identifier "lVar25") (= "=") (call_expression "FUN_0005b180()" (identifier "FUN_0005b180") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar18 = (int)((ulonglong)lVar25 >> 0x20);" (assignment_expression "iVar18 = (int)((ulonglong)lVar25 >> 0x20)" (identifier "iVar18") (= "=") (cast_expression "(int)((ulonglong)lVar25 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar25 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar25")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));" (assignment_expression "uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c))" (identifier "uVar7") (= "=") (call_expression "(uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)lVar25 < *(uint *)(param_1 + 0x10c))" (( "(") (binary_expression "(uint)lVar25 < *(uint *)(param_1 + 0x10c)" (cast_expression "(uint)lVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar25")) (< "<") (pointer_expression "*(uint *)(param_1 + 0x10c)" (* "*") (cast_expression "(uint *)(param_1 + 0x10c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10c)" (( "(") (binary_expression "param_1 + 0x10c" (identifier "param_1") (+ "+") (number_literal "0x10c")) () ")"))))) () ")")))) (; ";")) (expression_statement "iVar4 = iVar18 - *(int *)(param_1 + 0x110);" (assignment_expression "iVar4 = iVar18 - *(int *)(param_1 + 0x110)" (identifier "iVar4") (= "=") (binary_expression "iVar18 - *(int *)(param_1 + 0x110)" (identifier "iVar18") (- "-") (pointer_expression "*(int *)(param_1 + 0x110)" (* "*") (cast_expression "(int *)(param_1 + 0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))))) (; ";")) (if_statement "if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }" (if "if") (parenthesized_expression "(((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0))" (( "(") (binary_expression "((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||\n               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)" (parenthesized_expression "((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104)))" (( "(") (binary_expression "(((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))) &&\n                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))" (parenthesized_expression "(((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114)))))" (( "(") (binary_expression "((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0) &&\n                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))" (parenthesized_expression "((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0)" (( "(") (binary_expression "(SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==\n                   (int)(iVar4 - uVar7) < 0" (parenthesized_expression "(SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7))" (( "(") (binary_expression "SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)" (call_expression "SBORROW4(iVar18,*(int *)(param_1 + 0x110))" (identifier "SBORROW4") (argument_list "(iVar18,*(int *)(param_1 + 0x110))" (( "(") (identifier "iVar18") (, ",") (pointer_expression "*(int *)(param_1 + 0x110)" (* "*") (cast_expression "(int *)(param_1 + 0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) () ")"))) (!= "!=") (call_expression "SBORROW4(iVar4,uVar7)" (identifier "SBORROW4") (argument_list "(iVar4,uVar7)" (( "(") (identifier "iVar4") (, ",") (identifier "uVar7") () ")")))) () ")")) (== "==") (binary_expression "(int)(iVar4 - uVar7) < 0" (cast_expression "(int)(iVar4 - uVar7)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar4 - uVar7)" (( "(") (binary_expression "iVar4 - uVar7" (identifier "iVar4") (- "-") (identifier "uVar7")) () ")"))) (< "<") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "(((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))))" (( "(") (parenthesized_expression "((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114)))" (( "(") (binary_expression "(lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&\n                  (local_134 == *(int *)(param_1 + 0x114))" (parenthesized_expression "(lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0))" (( "(") (binary_expression "lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)" (binary_expression "lVar25 != *(longlong *)(param_1 + 0x10c)" (identifier "lVar25") (!= "!=") (pointer_expression "*(longlong *)(param_1 + 0x10c)" (* "*") (cast_expression "(longlong *)(param_1 + 0x10c)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10c)" (( "(") (binary_expression "param_1 + 0x10c" (identifier "param_1") (+ "+") (number_literal "0x10c")) () ")"))))) (|| "||") (parenthesized_expression "(*(int *)(param_1 + 0x118) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x118) != 0" (pointer_expression "*(int *)(param_1 + 0x118)" (* "*") (cast_expression "(int *)(param_1 + 0x118)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_134 == *(int *)(param_1 + 0x114))" (( "(") (binary_expression "local_134 == *(int *)(param_1 + 0x114)" (identifier "local_134") (== "==") (pointer_expression "*(int *)(param_1 + 0x114)" (* "*") (cast_expression "(int *)(param_1 + 0x114)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x114)" (( "(") (binary_expression "param_1 + 0x114" (identifier "param_1") (+ "+") (number_literal "0x114")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))" (( "(") (binary_expression "*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104)" (pointer_expression "*(int *)(param_1 + 0x108)" (* "*") (cast_expression "(int *)(param_1 + 0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (<= "<=") (pointer_expression "*(int *)(param_1 + 0x104)" (* "*") (cast_expression "(int *)(param_1 + 0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x104)" (( "(") (binary_expression "param_1 + 0x104" (identifier "param_1") (+ "+") (number_literal "0x104")) () ")"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)" (( "(") (comma_expression "local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0" (assignment_expression "local_68 = (int *)FUN_0013aff0()" (identifier "local_68") (= "=") (cast_expression "(int *)FUN_0013aff0()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0013aff0()" (identifier "FUN_0013aff0") (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "local_68 == (int *)0x0" (identifier "local_68") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n              *(longlong *)(param_1 + 0x10c) = lVar25;\n              *(undefined4 *)(param_1 + 0x118) = 0;\n              *(int *)(param_1 + 0x114) = local_134;\n              local_68 = (int *)0x0;\n            }" ({ "{") (expression_statement "*(longlong *)(param_1 + 0x10c) = lVar25;" (assignment_expression "*(longlong *)(param_1 + 0x10c) = lVar25" (pointer_expression "*(longlong *)(param_1 + 0x10c)" (* "*") (cast_expression "(longlong *)(param_1 + 0x10c)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10c)" (( "(") (binary_expression "param_1 + 0x10c" (identifier "param_1") (+ "+") (number_literal "0x10c")) () ")")))) (= "=") (identifier "lVar25")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x118) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x118) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(param_1 + 0x114) = local_134;" (assignment_expression "*(int *)(param_1 + 0x114) = local_134" (pointer_expression "*(int *)(param_1 + 0x114)" (* "*") (cast_expression "(int *)(param_1 + 0x114)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x114)" (( "(") (binary_expression "param_1 + 0x114" (identifier "param_1") (+ "+") (number_literal "0x114")) () ")")))) (= "=") (identifier "local_134")) (; ";")) (expression_statement "local_68 = (int *)0x0;" (assignment_expression "local_68 = (int *)0x0" (identifier "local_68") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);" (call_expression "memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4)" (identifier "memset") (argument_list "(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4)" (( "(") (identifier "__s_01") (, ",") (number_literal "0") (, ",") (binary_expression "*(int *)(param_1 + 0x18) * 4 + 4" (binary_expression "*(int *)(param_1 + 0x18) * 4" (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (* "*") (number_literal "4")) (+ "+") (number_literal "4")) () ")"))) (; ";")) (expression_statement "piVar6 = __s_01;" (assignment_expression "piVar6 = __s_01" (identifier "piVar6") (= "=") (identifier "__s_01")) (; ";")) (if_statement "if (local_68 == (int *)0x0) {\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }\n            else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }" (if "if") (parenthesized_expression "(local_68 == (int *)0x0)" (( "(") (binary_expression "local_68 == (int *)0x0" (identifier "local_68") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              iVar4 = *(int *)(param_1 + 0x18);\n              piVar6 = extraout_ECX_04;\n              if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }\n              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;\nLAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);\n              if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }\n            }" ({ "{") (expression_statement "iVar4 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x18)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "piVar6 = extraout_ECX_04;" (assignment_expression "piVar6 = extraout_ECX_04" (identifier "piVar6") (= "=") (identifier "extraout_ECX_04")) (; ";")) (if_statement "if (0 < iVar4) {\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }" (if "if") (parenthesized_expression "(0 < iVar4)" (( "(") (binary_expression "0 < iVar4" (number_literal "0") (< "<") (identifier "iVar4")) () ")")) (compound_statement "{\n                iVar18 = 0;\n                do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);\n              }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                } while (iVar9 < iVar4);" (do "do") (compound_statement "{\n                  iVar9 = iVar18 + 1;\n                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }\n                  iVar18 = iVar9;\n                }" ({ "{") (expression_statement "iVar9 = iVar18 + 1;" (assignment_expression "iVar9 = iVar18 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 0x20) + iVar18)" (* "*") (cast_expression "(char *)(*(int *)(param_1 + 0x20) + iVar18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x20) + iVar18)" (( "(") (binary_expression "*(int *)(param_1 + 0x20) + iVar18" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (identifier "iVar18")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    FUN_0004c5d0();\n                    FUN_0007f6d0();\n                    FUN_0004c6c0();\n                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);\n                    FUN_0004c5d0();\n                    iVar4 = FUN_0007f360();\n                    piVar6 = __s_01;\n                    FUN_0004c6c0();\n                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;\n                    if (local_68 != (int *)0x0) goto LAB_0013d062;\n                    iVar4 = *(int *)(param_1 + 0x18);\n                    __s_01 = piVar6;\n                  }" ({ "{") (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" (identifier "FUN_0004c5d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0007f6d0();" (call_expression "FUN_0007f6d0()" (identifier "FUN_0007f6d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" (identifier "FUN_0004c6c0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);" (assignment_expression "local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18)" (identifier "local_68") (= "=") (cast_expression "(int *)FUN_001223f0(iVar18,__s_01 + iVar18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001223f0(iVar18,__s_01 + iVar18)" (identifier "FUN_001223f0") (argument_list "(iVar18,__s_01 + iVar18)" (( "(") (identifier "iVar18") (, ",") (binary_expression "__s_01 + iVar18" (identifier "__s_01") (+ "+") (identifier "iVar18")) () ")"))))) (; ";")) (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" (identifier "FUN_0004c5d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar4 = FUN_0007f360();" (assignment_expression "iVar4 = FUN_0007f360()" (identifier "iVar4") (= "=") (call_expression "FUN_0007f360()" (identifier "FUN_0007f360") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar6 = __s_01;" (assignment_expression "piVar6 = __s_01" (identifier "piVar6") (= "=") (identifier "__s_01")) (; ";")) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" (identifier "FUN_0004c6c0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;" (assignment_expression "piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4" (subscript_expression "piVar6[*(int *)(param_1 + 0x18)]" (identifier "piVar6") ([ "[") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (] "]")) (= "=") (binary_expression "piVar6[*(int *)(param_1 + 0x18)] + iVar4" (subscript_expression "piVar6[*(int *)(param_1 + 0x18)]" (identifier "piVar6") ([ "[") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (] "]")) (+ "+") (identifier "iVar4"))) (; ";")) (if_statement "if (local_68 != (int *)0x0) goto LAB_0013d062;" (if "if") (parenthesized_expression "(local_68 != (int *)0x0)" (( "(") (binary_expression "local_68 != (int *)0x0" (identifier "local_68") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0013d062;" (goto "goto") (statement_identifier "LAB_0013d062") (; ";"))) (expression_statement "iVar4 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x18)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "__s_01 = piVar6;" (assignment_expression "__s_01 = piVar6" (identifier "__s_01") (= "=") (identifier "piVar6")) (; ";")) (} "}"))) (expression_statement "iVar18 = iVar9;" (assignment_expression "iVar18 = iVar9" (identifier "iVar18") (= "=") (identifier "iVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar9 < iVar4)" (( "(") (binary_expression "iVar9 < iVar4" (identifier "iVar9") (< "<") (identifier "iVar4")) () ")")) (; ";")) (} "}"))) (if_statement "if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0xea) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0xea) != '\0'" (pointer_expression "*(char *)(param_1 + 0xea)" (* "*") (cast_expression "(char *)(param_1 + 0xea)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xea)" (( "(") (binary_expression "param_1 + 0xea" (identifier "param_1") (+ "+") (number_literal "0xea")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0013d0c3;" (goto "goto") (statement_identifier "LAB_0013d0c3") (; ";"))) (labeled_statement "LAB_0013d09a:\n              local_f0 = (int *)((int)local_f0 + 1);" (statement_identifier "LAB_0013d09a") (: ":") (expression_statement "local_f0 = (int *)((int)local_f0 + 1);" (assignment_expression "local_f0 = (int *)((int)local_f0 + 1)" (identifier "local_f0") (= "=") (cast_expression "(int *)((int)local_f0 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_f0 + 1)" (( "(") (binary_expression "(int)local_f0 + 1" (cast_expression "(int)local_f0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f0")) (+ "+") (number_literal "1")) () ")")))) (; ";"))) (if_statement "if (-1 < iVar4) {\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }" (if "if") (parenthesized_expression "(-1 < iVar4)" (( "(") (binary_expression "-1 < iVar4" (number_literal "-1") (< "<") (identifier "iVar4")) () ")")) (compound_statement "{\n                iVar4 = 0;\n                do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));\n              }" ({ "{") (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                } while (iVar4 <= *(int *)(param_1 + 0x18));" (do "do") (compound_statement "{\n                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];\n                  iVar4 = iVar4 + 1;\n                  piVar6 = __s_01;\n                }" ({ "{") (expression_statement "__s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];" (assignment_expression "__s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4]" (subscript_expression "__s_00[iVar3 + iVar4 + 1]" (identifier "__s_00") ([ "[") (binary_expression "iVar3 + iVar4 + 1" (binary_expression "iVar3 + iVar4" (identifier "iVar3") (+ "+") (identifier "iVar4")) (+ "+") (number_literal "1")) (] "]")) (= "=") (binary_expression "__s_00[iVar3 + iVar4 + 1] + __s_01[iVar4]" (subscript_expression "__s_00[iVar3 + iVar4 + 1]" (identifier "__s_00") ([ "[") (binary_expression "iVar3 + iVar4 + 1" (binary_expression "iVar3 + iVar4" (identifier "iVar3") (+ "+") (identifier "iVar4")) (+ "+") (number_literal "1")) (] "]")) (+ "+") (subscript_expression "__s_01[iVar4]" (identifier "__s_01") ([ "[") (identifier "iVar4") (] "]")))) (; ";")) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar6 = __s_01;" (assignment_expression "piVar6 = __s_01" (identifier "piVar6") (= "=") (identifier "__s_01")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 <= *(int *)(param_1 + 0x18))" (( "(") (binary_expression "iVar4 <= *(int *)(param_1 + 0x18)" (identifier "iVar4") (<= "<=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }" (else "else") (compound_statement "{\nLAB_0013d062:\n              __s_01 = piVar6;\n              if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }\n              FUN_000c0450(local_58);\n              local_58 = (int *)0x0;\n              piVar6 = extraout_ECX_05;\n            }" ({ "{") (labeled_statement "LAB_0013d062:\n              __s_01 = piVar6;" (statement_identifier "LAB_0013d062") (: ":") (expression_statement "__s_01 = piVar6;" (assignment_expression "__s_01 = piVar6" (identifier "__s_01") (= "=") (identifier "piVar6")) (; ";"))) (if_statement "if (*(char *)(param_1 + 0xea) != '\0') {\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0xea) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0xea) != '\0'" (pointer_expression "*(char *)(param_1 + 0xea)" (* "*") (cast_expression "(char *)(param_1 + 0xea)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xea)" (( "(") (binary_expression "param_1 + 0xea" (identifier "param_1") (+ "+") (number_literal "0xea")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0013d0c3:\n                FUN_00111bd0();\n                if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }\n              }" ({ "{") (labeled_statement "LAB_0013d0c3:\n                FUN_00111bd0();" (statement_identifier "LAB_0013d0c3") (: ":") (expression_statement "FUN_00111bd0();" (call_expression "FUN_00111bd0()" (identifier "FUN_00111bd0") (argument_list "()" (( "(") () ")"))) (; ";"))) (if_statement "if (local_68 == (int *)0x0) {\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }" (if "if") (parenthesized_expression "(local_68 == (int *)0x0)" (( "(") (binary_expression "local_68 == (int *)0x0" (identifier "local_68") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  iVar4 = *(int *)(param_1 + 0x18);\n                  piVar6 = extraout_ECX_06;\n                  goto LAB_0013d09a;\n                }" ({ "{") (expression_statement "iVar4 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x18)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "piVar6 = extraout_ECX_06;" (assignment_expression "piVar6 = extraout_ECX_06" (identifier "piVar6") (= "=") (identifier "extraout_ECX_06")) (; ";")) (goto_statement "goto LAB_0013d09a;" (goto "goto") (statement_identifier "LAB_0013d09a") (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_000c0450(local_58);" (call_expression "FUN_000c0450(local_58)" (identifier "FUN_000c0450") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (expression_statement "local_58 = (int *)0x0;" (assignment_expression "local_58 = (int *)0x0" (identifier "local_58") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar6 = extraout_ECX_05;" (assignment_expression "piVar6 = extraout_ECX_05" (identifier "piVar6") (= "=") (identifier "extraout_ECX_05")) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }" (else "else") (compound_statement "{\nLAB_0013d116:\n          local_108 = (int *)0x0;\n          __s_01 = (int *)0x0;\n          local_f0 = (int *)0x0;\n        }" ({ "{") (labeled_statement "LAB_0013d116:\n          local_108 = (int *)0x0;" (statement_identifier "LAB_0013d116") (: ":") (expression_statement "local_108 = (int *)0x0;" (assignment_expression "local_108 = (int *)0x0" (identifier "local_108") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "__s_01 = (int *)0x0;" (assignment_expression "__s_01 = (int *)0x0" (identifier "__s_01") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_f0 = (int *)0x0;" (assignment_expression "local_f0 = (int *)0x0" (identifier "local_f0") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (if_statement "if (*(char *)(param_1 + 0xe8) != '\0') {\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0xe8) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0xe8) != '\0'" (pointer_expression "*(char *)(param_1 + 0xe8)" (* "*") (cast_expression "(char *)(param_1 + 0xe8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe8)" (( "(") (binary_expression "param_1 + 0xe8" (identifier "param_1") (+ "+") (number_literal "0xe8")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          FUN_00111db0(local_108,local_f0,piVar6,piVar6);\n        }" ({ "{") (expression_statement "FUN_00111db0(local_108,local_f0,piVar6,piVar6);" (call_expression "FUN_00111db0(local_108,local_f0,piVar6,piVar6)" (identifier "FUN_00111db0") (argument_list "(local_108,local_f0,piVar6,piVar6)" (( "(") (identifier "local_108") (, ",") (identifier "local_f0") (, ",") (identifier "piVar6") (, ",") (identifier "piVar6") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00044000(__s_01);" (call_expression "FUN_00044000(__s_01)" (identifier "FUN_00044000") (argument_list "(__s_01)" (( "(") (identifier "__s_01") () ")"))) (; ";")) (if_statement "if ((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {\n          local_68 = piVar6;\n        }" (if "if") (parenthesized_expression "((local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0))" (( "(") (binary_expression "(local_58 != (int *)0x0) &&\n           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)" (parenthesized_expression "(local_58 != (int *)0x0)" (( "(") (binary_expression "local_58 != (int *)0x0" (identifier "local_58") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)" (( "(") (comma_expression "piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0" (assignment_expression "piVar6 = (int *)FUN_000c0450(local_58)" (identifier "piVar6") (= "=") (cast_expression "(int *)FUN_000c0450(local_58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000c0450(local_58)" (identifier "FUN_000c0450") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))))) (, ",") (binary_expression "local_68 == (int *)0x0" (identifier "local_68") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n          local_68 = piVar6;\n        }" ({ "{") (expression_statement "local_68 = piVar6;" (assignment_expression "local_68 = piVar6" (identifier "local_68") (= "=") (identifier "piVar6")) (; ";")) (} "}"))) (expression_statement "local_f0 = local_68;" (assignment_expression "local_f0 = local_68" (identifier "local_f0") (= "=") (identifier "local_68")) (; ";")) (} "}")) (else_clause "else {\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }" (else "else") (compound_statement "{\n        if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }\n        iVar4 = FUN_00044730();\n        if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }\n      }" ({ "{") (if_statement "if (iVar4 != 0xf) {\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }" (if "if") (parenthesized_expression "(iVar4 != 0xf)" (( "(") (binary_expression "iVar4 != 0xf" (identifier "iVar4") (!= "!=") (number_literal "0xf")) () ")")) (compound_statement "{\n          if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }\n          goto LAB_0013ba5f;\n        }" ({ "{") (if_statement "if (6 < iVar4) {\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }" (if "if") (parenthesized_expression "(6 < iVar4)" (( "(") (binary_expression "6 < iVar4" (number_literal "6") (< "<") (identifier "iVar4")) () ")")) (compound_statement "{\n            iVar18 = FUN_00044730();\n            if (iVar18 == 0) goto LAB_0013be74;\n            if (10 < iVar4) goto LAB_0013c124;\n          }" ({ "{") (expression_statement "iVar18 = FUN_00044730();" (assignment_expression "iVar18 = FUN_00044730()" (identifier "iVar18") (= "=") (call_expression "FUN_00044730()" (identifier "FUN_00044730") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar18 == 0) goto LAB_0013be74;" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0013be74;" (goto "goto") (statement_identifier "LAB_0013be74") (; ";"))) (if_statement "if (10 < iVar4) goto LAB_0013c124;" (if "if") (parenthesized_expression "(10 < iVar4)" (( "(") (binary_expression "10 < iVar4" (number_literal "10") (< "<") (identifier "iVar4")) () ")")) (goto_statement "goto LAB_0013c124;" (goto "goto") (statement_identifier "LAB_0013c124") (; ";"))) (} "}"))) (goto_statement "goto LAB_0013ba5f;" (goto "goto") (statement_identifier "LAB_0013ba5f") (; ";")) (} "}"))) (expression_statement "iVar4 = FUN_00044730();" (assignment_expression "iVar4 = FUN_00044730()" (identifier "iVar4") (= "=") (call_expression "FUN_00044730()" (identifier "FUN_00044730") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }\n        else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_f0 = (int *)FUN_00101610();\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }\n        }" ({ "{") (expression_statement "local_f0 = (int *)FUN_00101610();" (assignment_expression "local_f0 = (int *)FUN_00101610()" (identifier "local_f0") (= "=") (cast_expression "(int *)FUN_00101610()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00101610()" (identifier "FUN_00101610") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }" (if "if") (parenthesized_expression "(local_f0 == (int *)0x0)" (( "(") (binary_expression "local_f0 == (int *)0x0" (identifier "local_f0") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            FUN_00079e80();\n            FUN_00079e00();\n            local_d0 = 0;\n            local_b4 = 0;\n            do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);\n            FUN_000bfe40(0);\n            local_f0 = local_12c;\n          }" ({ "{") (expression_statement "FUN_00079e80();" (call_expression "FUN_00079e80()" (identifier "FUN_00079e80") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00079e00();" (call_expression "FUN_00079e00()" (identifier "FUN_00079e00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" (identifier "local_d0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" (identifier "local_b4") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            } while (local_12c == (int *)0x0);" (do "do") (compound_statement "{\n              do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);\n              local_114 = 0;\n              local_110 = 0;\n              do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));\n            }" ({ "{") (do_statement "do {\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              } while (*(int *)(param_1 + 0xfc) < 1);" (do "do") (compound_statement "{\n                iVar3 = FUN_000e7e00(0);\n                if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }\n                FUN_0004c5d0();\n                uVar7 = FUN_00045540();\n                FUN_0004c6c0();\n              }" ({ "{") (expression_statement "iVar3 = FUN_000e7e00(0);" (assignment_expression "iVar3 = FUN_000e7e00(0)" (identifier "iVar3") (= "=") (call_expression "FUN_000e7e00(0)" (identifier "FUN_000e7e00") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 != 100) {\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }" (if "if") (parenthesized_expression "(iVar3 != 100)" (( "(") (binary_expression "iVar3 != 100" (identifier "iVar3") (!= "!=") (number_literal "100")) () ")")) (compound_statement "{\n                  local_f0 = (int *)FUN_000bfe40(0);\n                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;\n                  iVar3 = **(int **)(param_1 + 0x24);\n                  local_8c = 0;\n                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));\n                  if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }\n                  FUN_000c0450(local_8c);\n                  uVar5 = *(undefined4 *)(param_1 + 0xf8);\n                  local_f0 = (int *)0x7;\n                  goto LAB_0013ba71;\n                }" ({ "{") (expression_statement "local_f0 = (int *)FUN_000bfe40(0);" (assignment_expression "local_f0 = (int *)FUN_000bfe40(0)" (identifier "local_f0") (= "=") (cast_expression "(int *)FUN_000bfe40(0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000bfe40(0)" (identifier "FUN_000bfe40") (argument_list "(0)" (( "(") (number_literal "0") () ")"))))) (; ";")) (if_statement "if (local_f0 != (int *)0x0) goto LAB_0013c0e0;" (if "if") (parenthesized_expression "(local_f0 != (int *)0x0)" (( "(") (binary_expression "local_f0 != (int *)0x0" (identifier "local_f0") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0013c0e0;" (goto "goto") (statement_identifier "LAB_0013c0e0") (; ";"))) (expression_statement "iVar3 = **(int **)(param_1 + 0x24);" (assignment_expression "iVar3 = **(int **)(param_1 + 0x24)" (identifier "iVar3") (= "=") (pointer_expression "**(int **)(param_1 + 0x24)" (* "*") (pointer_expression "*(int **)(param_1 + 0x24)" (* "*") (cast_expression "(int **)(param_1 + 0x24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))))) (; ";")) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" (identifier "local_8c") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));" (assignment_expression "iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc))" (identifier "iVar4") (= "=") (call_expression "FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc))" (identifier "FUN_000a3060") (argument_list "(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc))" (( "(") (binary_expression "unaff_EBP + 0x230e7" (identifier "unaff_EBP") (+ "+") (number_literal "0x230e7")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0xdc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xdc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xdc)" (( "(") (binary_expression "param_1 + 0xdc" (identifier "param_1") (+ "+") (number_literal "0xdc")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);\n                    FUN_00044000(iVar4);\n                    local_ec = 0;\n                    local_e8 = 0;\n                    piVar6 = local_f0;\n                    uVar5 = local_8c;\n                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;\n                    goto LAB_0013d234;\n                  }" ({ "{") (expression_statement "local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);" (assignment_expression "local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0)" (identifier "local_f0") (= "=") (cast_expression "(int *)FUN_00100700(0x80,0,&local_8c,0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00100700(0x80,0,&local_8c,0)" (identifier "FUN_00100700") (argument_list "(0x80,0,&local_8c,0)" (( "(") (number_literal "0x80") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_8c" (& "&") (identifier "local_8c")) (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "FUN_00044000(iVar4);" (call_expression "FUN_00044000(iVar4)" (identifier "FUN_00044000") (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" (identifier "local_ec") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" (identifier "local_e8") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6 = local_f0;" (assignment_expression "piVar6 = local_f0" (identifier "piVar6") (= "=") (identifier "local_f0")) (; ";")) (expression_statement "uVar5 = local_8c;" (assignment_expression "uVar5 = local_8c" (identifier "uVar5") (= "=") (identifier "local_8c")) (; ";")) (if_statement "if (local_f0 != (int *)0x0) goto LAB_0013d4fe;" (if "if") (parenthesized_expression "(local_f0 != (int *)0x0)" (( "(") (binary_expression "local_f0 != (int *)0x0" (identifier "local_f0") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0013d4fe;" (goto "goto") (statement_identifier "LAB_0013d4fe") (; ";"))) (goto_statement "goto LAB_0013d234;" (goto "goto") (statement_identifier "LAB_0013d234") (; ";")) (} "}"))) (expression_statement "FUN_000c0450(local_8c);" (call_expression "FUN_000c0450(local_8c)" (identifier "FUN_000c0450") (argument_list "(local_8c)" (( "(") (identifier "local_8c") () ")"))) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (expression_statement "local_f0 = (int *)0x7;" (assignment_expression "local_f0 = (int *)0x7" (identifier "local_f0") (= "=") (cast_expression "(int *)0x7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7"))) (; ";")) (goto_statement "goto LAB_0013ba71;" (goto "goto") (statement_identifier "LAB_0013ba71") (; ";")) (} "}"))) (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" (identifier "FUN_0004c5d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar7 = FUN_00045540();" (assignment_expression "uVar7 = FUN_00045540()" (identifier "uVar7") (= "=") (call_expression "FUN_00045540()" (identifier "FUN_00045540") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" (identifier "FUN_0004c6c0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int *)(param_1 + 0xfc) < 1)" (( "(") (binary_expression "*(int *)(param_1 + 0xfc) < 1" (pointer_expression "*(int *)(param_1 + 0xfc)" (* "*") (cast_expression "(int *)(param_1 + 0xfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xfc)" (( "(") (binary_expression "param_1 + 0xfc" (identifier "param_1") (+ "+") (number_literal "0xfc")) () ")")))) (< "<") (number_literal "1")) () ")")) (; ";")) (expression_statement "local_114 = 0;" (assignment_expression "local_114 = 0" (identifier "local_114") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_110 = 0;" (assignment_expression "local_110 = 0" (identifier "local_110") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              } while ((int)local_114 < *(int *)(param_1 + 0xfc));" (do "do") (compound_statement "{\n                local_68 = (int *)0x0;\n                local_64 = 0;\n                local_60 = 0;\n                ppiVar21 = &local_58;\n                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }\n                local_5c = 0x13;\n                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);\n                if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }\n                piVar6 = local_58;\n                if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }\nLAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                iVar3 = local_48;\n                if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }\n                bVar23 = 0xfffffffe < local_114;\n                local_114 = local_114 + 1;\n                local_110 = local_110 + (uint)bVar23;\n              }" ({ "{") (expression_statement "local_68 = (int *)0x0;" (assignment_expression "local_68 = (int *)0x0" (identifier "local_68") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "ppiVar21 = &local_58;" (assignment_expression "ppiVar21 = &local_58" (identifier "ppiVar21") (= "=") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) (; ";")) (for_statement "for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }" (for "for") (( "(") (assignment_expression "iVar3 = 0xe" (identifier "iVar3") (= "=") (number_literal "0xe")) (; ";") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n                  *ppiVar21 = (int *)0x0;\n                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;\n                }" ({ "{") (expression_statement "*ppiVar21 = (int *)0x0;" (assignment_expression "*ppiVar21 = (int *)0x0" (pointer_expression "*ppiVar21" (* "*") (identifier "ppiVar21")) (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;" (assignment_expression "ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1" (identifier "ppiVar21") (= "=") (binary_expression "ppiVar21 + (uint)bVar24 * -2 + 1" (binary_expression "ppiVar21 + (uint)bVar24 * -2" (identifier "ppiVar21") (+ "+") (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "local_5c = 0x13;" (assignment_expression "local_5c = 0x13" (identifier "local_5c") (= "=") (number_literal "0x13")) (; ";")) (expression_statement "local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);" (assignment_expression "local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58)" (identifier "local_12c") (= "=") (cast_expression "(int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58)" (identifier "FUN_0012aa30") (argument_list "(0xfffffffe,0,0,0,1,&local_58)" (( "(") (number_literal "0xfffffffe") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))))) (; ";")) (if_statement "if ((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)) {\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }" (if "if") (parenthesized_expression "((local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0))" (( "(") (binary_expression "(local_12c == (int *)0x0) &&\n                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)" (parenthesized_expression "(local_12c == (int *)0x0)" (( "(") (binary_expression "local_12c == (int *)0x0" (identifier "local_12c") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0)" (( "(") (comma_expression "local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0" (assignment_expression "local_4c = &local_68" (identifier "local_4c") (= "=") (pointer_expression "&local_68" (& "&") (identifier "local_68"))) (, ",") (comma_expression "local_12c = (int *)FUN_0012cf60(local_64),\n                   local_12c == (int *)0x0" (assignment_expression "local_12c = (int *)FUN_0012cf60(local_64)" (identifier "local_12c") (= "=") (cast_expression "(int *)FUN_0012cf60(local_64)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0012cf60(local_64)" (identifier "FUN_0012cf60") (argument_list "(local_64)" (( "(") (identifier "local_64") () ")"))))) (, ",") (binary_expression "local_12c == (int *)0x0" (identifier "local_12c") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))))) () ")"))) () ")")) (compound_statement "{\n                  local_104 = 0;\n                  local_100 = 0;\nLAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();\n                  iVar3 = local_28;\n                  if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }\n                  local_d0 = local_d0 ^ local_104;\n                  local_b4 = local_b4 ^ local_100;\n                }" ({ "{") (expression_statement "local_104 = 0;" (assignment_expression "local_104 = 0" (identifier "local_104") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" (identifier "local_100") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0013c8a0:\n                  local_12c = (int *)FUN_0012ba30();" (statement_identifier "LAB_0013c8a0") (: ":") (expression_statement "local_12c = (int *)FUN_0012ba30();" (assignment_expression "local_12c = (int *)FUN_0012ba30()" (identifier "local_12c") (= "=") (cast_expression "(int *)FUN_0012ba30()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0012ba30()" (identifier "FUN_0012ba30") (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "iVar3 = local_28;" (assignment_expression "iVar3 = local_28" (identifier "iVar3") (= "=") (identifier "local_28")) (; ";")) (if_statement "if (local_12c == (int *)0x64) {\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }" (if "if") (parenthesized_expression "(local_12c == (int *)0x64)" (( "(") (binary_expression "local_12c == (int *)0x64" (identifier "local_12c") (== "==") (cast_expression "(int *)0x64" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x64"))) () ")")) (compound_statement "{\n                    local_84 = (char *)0x0;\n                    local_80 = 0;\n                    local_7c[0] = 0;\n                    pbVar19 = (byte *)(local_24 + local_28);\n                    local_7c[1] = 0;\n                    iVar4 = FUN_0003e400();\n                    uVar28 = 0;\n                    pbVar22 = (byte *)(iVar3 + iVar4);\n                    iVar3 = 0;\n                    if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }\n                    goto LAB_0013c8a0;\n                  }" ({ "{") (expression_statement "local_84 = (char *)0x0;" (assignment_expression "local_84 = (char *)0x0" (identifier "local_84") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" (identifier "local_80") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_7c[0] = 0;" (assignment_expression "local_7c[0] = 0" (subscript_expression "local_7c[0]" (identifier "local_7c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar19 = (byte *)(local_24 + local_28);" (assignment_expression "pbVar19 = (byte *)(local_24 + local_28)" (identifier "pbVar19") (= "=") (cast_expression "(byte *)(local_24 + local_28)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_24 + local_28)" (( "(") (binary_expression "local_24 + local_28" (identifier "local_24") (+ "+") (identifier "local_28")) () ")")))) (; ";")) (expression_statement "local_7c[1] = 0;" (assignment_expression "local_7c[1] = 0" (subscript_expression "local_7c[1]" (identifier "local_7c") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = FUN_0003e400();" (assignment_expression "iVar4 = FUN_0003e400()" (identifier "iVar4") (= "=") (call_expression "FUN_0003e400()" (identifier "FUN_0003e400") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" (identifier "uVar28") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar22 = (byte *)(iVar3 + iVar4);" (assignment_expression "pbVar22 = (byte *)(iVar3 + iVar4)" (identifier "pbVar22") (= "=") (cast_expression "(byte *)(iVar3 + iVar4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + iVar4)" (( "(") (binary_expression "iVar3 + iVar4" (identifier "iVar3") (+ "+") (identifier "iVar4")) () ")")))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if (pbVar22 < pbVar19) {\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }" (if "if") (parenthesized_expression "(pbVar22 < pbVar19)" (( "(") (binary_expression "pbVar22 < pbVar19" (identifier "pbVar22") (< "<") (identifier "pbVar19")) () ")")) (compound_statement "{\n                      while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }\n                    }" ({ "{") (while_statement "while( true ) {\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                        local_7c[2] = (uint)*pbVar22;\n                        if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }\n                        pbVar22 = pbVar22 + iVar4;\n                        if (pbVar19 <= pbVar22) break;\n                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }\n                      }" ({ "{") (expression_statement "local_7c[2] = (uint)*pbVar22;" (assignment_expression "local_7c[2] = (uint)*pbVar22" (subscript_expression "local_7c[2]" (identifier "local_7c") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "(uint)*pbVar22" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar22"))) (; ";")) (if_statement "if ((char)*pbVar22 < '\0') {\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }\n                        else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }" (if "if") (parenthesized_expression "((char)*pbVar22 < '\0')" (( "(") (binary_expression "(char)*pbVar22 < '\0'" (cast_expression "(char)*pbVar22" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22"))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                          uVar10 = local_7c[2] & 0x7f;\n                          uVar20 = (uint)pbVar22[1] << 7;\n                          local_7c[2] = uVar20 | uVar10;\n                          if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }\n                        }" ({ "{") (expression_statement "uVar10 = local_7c[2] & 0x7f;" (assignment_expression "uVar10 = local_7c[2] & 0x7f" (identifier "uVar10") (= "=") (binary_expression "local_7c[2] & 0x7f" (subscript_expression "local_7c[2]" (identifier "local_7c") ([ "[") (number_literal "2") (] "]")) (& "&") (number_literal "0x7f"))) (; ";")) (expression_statement "uVar20 = (uint)pbVar22[1] << 7;" (assignment_expression "uVar20 = (uint)pbVar22[1] << 7" (identifier "uVar20") (= "=") (binary_expression "(uint)pbVar22[1] << 7" (cast_expression "(uint)pbVar22[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar22[1]" (identifier "pbVar22") ([ "[") (number_literal "1") (] "]"))) (<< "<<") (number_literal "7"))) (; ";")) (expression_statement "local_7c[2] = uVar20 | uVar10;" (assignment_expression "local_7c[2] = uVar20 | uVar10" (subscript_expression "local_7c[2]" (identifier "local_7c") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar20 | uVar10" (identifier "uVar20") (| "|") (identifier "uVar10"))) (; ";")) (if_statement "if ((uVar20 & 0x4000) == 0) {\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }\n                          else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }" (if "if") (parenthesized_expression "((uVar20 & 0x4000) == 0)" (( "(") (binary_expression "(uVar20 & 0x4000) == 0" (parenthesized_expression "(uVar20 & 0x4000)" (( "(") (binary_expression "uVar20 & 0x4000" (identifier "uVar20") (& "&") (number_literal "0x4000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                            iVar4 = 2;\n                            local_7c[3] = 0;\n                          }" ({ "{") (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" (identifier "iVar4") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_7c[3] = 0;" (assignment_expression "local_7c[3] = 0" (subscript_expression "local_7c[3]" (identifier "local_7c") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }" (else "else") (compound_statement "{\n                            uVar10 = uVar20 & 0x3fff | uVar10;\n                            uVar20 = (uint)pbVar22[2] << 0xe;\n                            local_7c[2] = uVar10 | uVar20;\n                            if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }\n                          }" ({ "{") (expression_statement "uVar10 = uVar20 & 0x3fff | uVar10;" (assignment_expression "uVar10 = uVar20 & 0x3fff | uVar10" (identifier "uVar10") (= "=") (binary_expression "uVar20 & 0x3fff | uVar10" (binary_expression "uVar20 & 0x3fff" (identifier "uVar20") (& "&") (number_literal "0x3fff")) (| "|") (identifier "uVar10"))) (; ";")) (expression_statement "uVar20 = (uint)pbVar22[2] << 0xe;" (assignment_expression "uVar20 = (uint)pbVar22[2] << 0xe" (identifier "uVar20") (= "=") (binary_expression "(uint)pbVar22[2] << 0xe" (cast_expression "(uint)pbVar22[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar22[2]" (identifier "pbVar22") ([ "[") (number_literal "2") (] "]"))) (<< "<<") (number_literal "0xe"))) (; ";")) (expression_statement "local_7c[2] = uVar10 | uVar20;" (assignment_expression "local_7c[2] = uVar10 | uVar20" (subscript_expression "local_7c[2]" (identifier "local_7c") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar10 | uVar20" (identifier "uVar10") (| "|") (identifier "uVar20"))) (; ";")) (if_statement "if ((uVar20 & 0x200000) == 0) {\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }\n                            else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }" (if "if") (parenthesized_expression "((uVar20 & 0x200000) == 0)" (( "(") (binary_expression "(uVar20 & 0x200000) == 0" (parenthesized_expression "(uVar20 & 0x200000)" (( "(") (binary_expression "uVar20 & 0x200000" (identifier "uVar20") (& "&") (number_literal "0x200000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                              iVar4 = 3;\n                              local_7c[3] = 0;\n                            }" ({ "{") (expression_statement "iVar4 = 3;" (assignment_expression "iVar4 = 3" (identifier "iVar4") (= "=") (number_literal "3")) (; ";")) (expression_statement "local_7c[3] = 0;" (assignment_expression "local_7c[3] = 0" (subscript_expression "local_7c[3]" (identifier "local_7c") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }" (else "else") (compound_statement "{\n                              uVar10 = uVar10 | uVar20 & 0x1fffff;\n                              uVar20 = (uint)pbVar22[3] << 0x15;\n                              local_7c[2] = uVar10 | uVar20;\n                              if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }\n                            }" ({ "{") (expression_statement "uVar10 = uVar10 | uVar20 & 0x1fffff;" (assignment_expression "uVar10 = uVar10 | uVar20 & 0x1fffff" (identifier "uVar10") (= "=") (binary_expression "uVar10 | uVar20 & 0x1fffff" (identifier "uVar10") (| "|") (binary_expression "uVar20 & 0x1fffff" (identifier "uVar20") (& "&") (number_literal "0x1fffff")))) (; ";")) (expression_statement "uVar20 = (uint)pbVar22[3] << 0x15;" (assignment_expression "uVar20 = (uint)pbVar22[3] << 0x15" (identifier "uVar20") (= "=") (binary_expression "(uint)pbVar22[3] << 0x15" (cast_expression "(uint)pbVar22[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar22[3]" (identifier "pbVar22") ([ "[") (number_literal "3") (] "]"))) (<< "<<") (number_literal "0x15"))) (; ";")) (expression_statement "local_7c[2] = uVar10 | uVar20;" (assignment_expression "local_7c[2] = uVar10 | uVar20" (subscript_expression "local_7c[2]" (identifier "local_7c") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar10 | uVar20" (identifier "uVar10") (| "|") (identifier "uVar20"))) (; ";")) (if_statement "if ((uVar20 & 0x10000000) == 0) {\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }\n                              else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }" (if "if") (parenthesized_expression "((uVar20 & 0x10000000) == 0)" (( "(") (binary_expression "(uVar20 & 0x10000000) == 0" (parenthesized_expression "(uVar20 & 0x10000000)" (( "(") (binary_expression "uVar20 & 0x10000000" (identifier "uVar20") (& "&") (number_literal "0x10000000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                                iVar4 = 4;\n                                local_7c[3] = 0;\n                              }" ({ "{") (expression_statement "iVar4 = 4;" (assignment_expression "iVar4 = 4" (identifier "iVar4") (= "=") (number_literal "4")) (; ";")) (expression_statement "local_7c[3] = 0;" (assignment_expression "local_7c[3] = 0" (subscript_expression "local_7c[3]" (identifier "local_7c") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }" (else "else") (compound_statement "{\n                                uVar10 = uVar10 | uVar20 & 0xfffffff;\n                                uVar20 = pbVar22[4] & 0x7f;\n                                uVar11 = uVar20 * 0x10000000;\n                                local_7c[2] = uVar10 + uVar11;\n                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);\n                                if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }\n                                iVar4 = (int)pbVar16 - (int)pbVar22;\n                              }" ({ "{") (expression_statement "uVar10 = uVar10 | uVar20 & 0xfffffff;" (assignment_expression "uVar10 = uVar10 | uVar20 & 0xfffffff" (identifier "uVar10") (= "=") (binary_expression "uVar10 | uVar20 & 0xfffffff" (identifier "uVar10") (| "|") (binary_expression "uVar20 & 0xfffffff" (identifier "uVar20") (& "&") (number_literal "0xfffffff")))) (; ";")) (expression_statement "uVar20 = pbVar22[4] & 0x7f;" (assignment_expression "uVar20 = pbVar22[4] & 0x7f" (identifier "uVar20") (= "=") (binary_expression "pbVar22[4] & 0x7f" (subscript_expression "pbVar22[4]" (identifier "pbVar22") ([ "[") (number_literal "4") (] "]")) (& "&") (number_literal "0x7f"))) (; ";")) (expression_statement "uVar11 = uVar20 * 0x10000000;" (assignment_expression "uVar11 = uVar20 * 0x10000000" (identifier "uVar11") (= "=") (binary_expression "uVar20 * 0x10000000" (identifier "uVar20") (* "*") (number_literal "0x10000000"))) (; ";")) (expression_statement "local_7c[2] = uVar10 + uVar11;" (assignment_expression "local_7c[2] = uVar10 + uVar11" (subscript_expression "local_7c[2]" (identifier "local_7c") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar10 + uVar11" (identifier "uVar10") (+ "+") (identifier "uVar11"))) (; ";")) (expression_statement "local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);" (assignment_expression "local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11)" (subscript_expression "local_7c[3]" (identifier "local_7c") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "(uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11)" (parenthesized_expression "(uVar20 >> 4)" (( "(") (binary_expression "uVar20 >> 4" (identifier "uVar20") (>> ">>") (number_literal "4")) () ")")) (+ "+") (cast_expression "(uint)CARRY4(uVar10,uVar11)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar10,uVar11)" (identifier "CARRY4") (argument_list "(uVar10,uVar11)" (( "(") (identifier "uVar10") (, ",") (identifier "uVar11") () ")")))))) (; ";")) (if_statement "if ((char)pbVar22[4] < '\0') {\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }\n                                else {\n                                  pbVar16 = pbVar22 + 5;\n                                }" (if "if") (parenthesized_expression "((char)pbVar22[4] < '\0')" (( "(") (binary_expression "(char)pbVar22[4] < '\0'" (cast_expression "(char)pbVar22[4]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar22[4]" (identifier "pbVar22") ([ "[") (number_literal "4") (] "]"))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;\n                                  if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }\n                                }" ({ "{") (expression_statement "local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;" (assignment_expression "local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8" (subscript_expression "local_7c[3]" (identifier "local_7c") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "local_7c[3] + (pbVar22[5] & 0x7f) * 8" (subscript_expression "local_7c[3]" (identifier "local_7c") ([ "[") (number_literal "3") (] "]")) (+ "+") (binary_expression "(pbVar22[5] & 0x7f) * 8" (parenthesized_expression "(pbVar22[5] & 0x7f)" (( "(") (binary_expression "pbVar22[5] & 0x7f" (subscript_expression "pbVar22[5]" (identifier "pbVar22") ([ "[") (number_literal "5") (] "]")) (& "&") (number_literal "0x7f")) () ")")) (* "*") (number_literal "8")))) (; ";")) (if_statement "if ((char)pbVar22[5] < '\0') {\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }\n                                  else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }" (if "if") (parenthesized_expression "((char)pbVar22[5] < '\0')" (( "(") (binary_expression "(char)pbVar22[5] < '\0'" (cast_expression "(char)pbVar22[5]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar22[5]" (identifier "pbVar22") ([ "[") (number_literal "5") (] "]"))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;\n                                    if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }\n                                  }" ({ "{") (expression_statement "local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;" (assignment_expression "local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400" (subscript_expression "local_7c[3]" (identifier "local_7c") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "local_7c[3] + (pbVar22[6] & 0x7f) * 0x400" (subscript_expression "local_7c[3]" (identifier "local_7c") ([ "[") (number_literal "3") (] "]")) (+ "+") (binary_expression "(pbVar22[6] & 0x7f) * 0x400" (parenthesized_expression "(pbVar22[6] & 0x7f)" (( "(") (binary_expression "pbVar22[6] & 0x7f" (subscript_expression "pbVar22[6]" (identifier "pbVar22") ([ "[") (number_literal "6") (] "]")) (& "&") (number_literal "0x7f")) () ")")) (* "*") (number_literal "0x400")))) (; ";")) (if_statement "if ((char)pbVar22[6] < '\0') {\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }\n                                    else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }" (if "if") (parenthesized_expression "((char)pbVar22[6] < '\0')" (( "(") (binary_expression "(char)pbVar22[6] < '\0'" (cast_expression "(char)pbVar22[6]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar22[6]" (identifier "pbVar22") ([ "[") (number_literal "6") (] "]"))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;\n                                      if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }\n                                    }" ({ "{") (expression_statement "local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;" (assignment_expression "local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000" (subscript_expression "local_7c[3]" (identifier "local_7c") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000" (subscript_expression "local_7c[3]" (identifier "local_7c") ([ "[") (number_literal "3") (] "]")) (+ "+") (binary_expression "(pbVar22[7] & 0x7f) * 0x20000" (parenthesized_expression "(pbVar22[7] & 0x7f)" (( "(") (binary_expression "pbVar22[7] & 0x7f" (subscript_expression "pbVar22[7]" (identifier "pbVar22") ([ "[") (number_literal "7") (] "]")) (& "&") (number_literal "0x7f")) () ")")) (* "*") (number_literal "0x20000")))) (; ";")) (if_statement "if ((char)pbVar22[7] < '\0') {\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }\n                                      else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }" (if "if") (parenthesized_expression "((char)pbVar22[7] < '\0')" (( "(") (binary_expression "(char)pbVar22[7] < '\0'" (cast_expression "(char)pbVar22[7]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar22[7]" (identifier "pbVar22") ([ "[") (number_literal "7") (] "]"))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;\n                                        if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }\n                                      }" ({ "{") (expression_statement "local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;" (assignment_expression "local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000" (subscript_expression "local_7c[3]" (identifier "local_7c") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000" (subscript_expression "local_7c[3]" (identifier "local_7c") ([ "[") (number_literal "3") (] "]")) (+ "+") (binary_expression "(pbVar22[8] & 0x7f) * 0x1000000" (parenthesized_expression "(pbVar22[8] & 0x7f)" (( "(") (binary_expression "pbVar22[8] & 0x7f" (subscript_expression "pbVar22[8]" (identifier "pbVar22") ([ "[") (number_literal "8") (] "]")) (& "&") (number_literal "0x7f")) () ")")) (* "*") (number_literal "0x1000000")))) (; ";")) (if_statement "if ((char)pbVar22[8] < '\0') {\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }\n                                        else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }" (if "if") (parenthesized_expression "((char)pbVar22[8] < '\0')" (( "(") (binary_expression "(char)pbVar22[8] < '\0'" (cast_expression "(char)pbVar22[8]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar22[8]" (identifier "pbVar22") ([ "[") (number_literal "8") (] "]"))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                                          pbVar16 = pbVar22 + 10;\n                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;\n                                        }" ({ "{") (expression_statement "pbVar16 = pbVar22 + 10;" (assignment_expression "pbVar16 = pbVar22 + 10" (identifier "pbVar16") (= "=") (binary_expression "pbVar22 + 10" (identifier "pbVar22") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000\n                                          ;" (assignment_expression "local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000" (subscript_expression "local_7c[3]" (identifier "local_7c") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "local_7c[3] + (uint)pbVar22[9] * -0x80000000" (subscript_expression "local_7c[3]" (identifier "local_7c") ([ "[") (number_literal "3") (] "]")) (+ "+") (binary_expression "(uint)pbVar22[9] * -0x80000000" (cast_expression "(uint)pbVar22[9]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar22[9]" (identifier "pbVar22") ([ "[") (number_literal "9") (] "]"))) (* "*") (number_literal "-0x80000000")))) (; ";")) (} "}")) (else_clause "else {\n                                          pbVar16 = pbVar22 + 9;\n                                        }" (else "else") (compound_statement "{\n                                          pbVar16 = pbVar22 + 9;\n                                        }" ({ "{") (expression_statement "pbVar16 = pbVar22 + 9;" (assignment_expression "pbVar16 = pbVar22 + 9" (identifier "pbVar16") (= "=") (binary_expression "pbVar22 + 9" (identifier "pbVar22") (+ "+") (number_literal "9"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                                        pbVar16 = pbVar22 + 8;\n                                      }" (else "else") (compound_statement "{\n                                        pbVar16 = pbVar22 + 8;\n                                      }" ({ "{") (expression_statement "pbVar16 = pbVar22 + 8;" (assignment_expression "pbVar16 = pbVar22 + 8" (identifier "pbVar16") (= "=") (binary_expression "pbVar22 + 8" (identifier "pbVar22") (+ "+") (number_literal "8"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                                      pbVar16 = pbVar22 + 7;\n                                    }" (else "else") (compound_statement "{\n                                      pbVar16 = pbVar22 + 7;\n                                    }" ({ "{") (expression_statement "pbVar16 = pbVar22 + 7;" (assignment_expression "pbVar16 = pbVar22 + 7" (identifier "pbVar16") (= "=") (binary_expression "pbVar22 + 7" (identifier "pbVar22") (+ "+") (number_literal "7"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                                    pbVar16 = pbVar22 + 6;\n                                  }" (else "else") (compound_statement "{\n                                    pbVar16 = pbVar22 + 6;\n                                  }" ({ "{") (expression_statement "pbVar16 = pbVar22 + 6;" (assignment_expression "pbVar16 = pbVar22 + 6" (identifier "pbVar16") (= "=") (binary_expression "pbVar22 + 6" (identifier "pbVar22") (+ "+") (number_literal "6"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                                  pbVar16 = pbVar22 + 5;\n                                }" (else "else") (compound_statement "{\n                                  pbVar16 = pbVar22 + 5;\n                                }" ({ "{") (expression_statement "pbVar16 = pbVar22 + 5;" (assignment_expression "pbVar16 = pbVar22 + 5" (identifier "pbVar16") (= "=") (binary_expression "pbVar22 + 5" (identifier "pbVar22") (+ "+") (number_literal "5"))) (; ";")) (} "}")))) (expression_statement "iVar4 = (int)pbVar16 - (int)pbVar22;" (assignment_expression "iVar4 = (int)pbVar16 - (int)pbVar22" (identifier "iVar4") (= "=") (binary_expression "(int)pbVar16 - (int)pbVar22" (cast_expression "(int)pbVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar16")) (- "-") (cast_expression "(int)pbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar22")))) (; ";")) (} "}")))) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }" (else "else") (compound_statement "{\n                          iVar4 = 1;\n                          local_7c[3] = 0;\n                        }" ({ "{") (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" (identifier "iVar4") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_7c[3] = 0;" (assignment_expression "local_7c[3] = 0" (subscript_expression "local_7c[3]" (identifier "local_7c") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "pbVar22 = pbVar22 + iVar4;" (assignment_expression "pbVar22 = pbVar22 + iVar4" (identifier "pbVar22") (= "=") (binary_expression "pbVar22 + iVar4" (identifier "pbVar22") (+ "+") (identifier "iVar4"))) (; ";")) (if_statement "if (pbVar19 <= pbVar22) break;" (if "if") (parenthesized_expression "(pbVar19 <= pbVar22)" (( "(") (binary_expression "pbVar19 <= pbVar22" (identifier "pbVar19") (<= "<=") (identifier "pbVar22")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }\n                        else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }" (if "if") (parenthesized_expression "(local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3])" (( "(") (binary_expression "local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]" (binary_expression "local_7c[3] == 0" (subscript_expression "local_7c[3]" (identifier "local_7c") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "(uint)(1 < local_7c[2]) <= -local_7c[3]" (call_expression "(uint)(1 < local_7c[2])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(1 < local_7c[2])" (( "(") (binary_expression "1 < local_7c[2]" (number_literal "1") (< "<") (subscript_expression "local_7c[2]" (identifier "local_7c") ([ "[") (number_literal "2") (] "]"))) () ")"))) (<= "<=") (unary_expression "-local_7c[3]" (- "-") (subscript_expression "local_7c[3]" (identifier "local_7c") ([ "[") (number_literal "3") (] "]"))))) () ")")) (compound_statement "{\n                          local_7c[0] = 0;\n                          local_7c[1] = 0;\n                          if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }\n                          pbVar22 = pbVar22 + iVar3;\n                          if (pbVar19 <= pbVar22) break;\n                          uVar28 = 0;\n                          iVar3 = 0;\n                        }" ({ "{") (expression_statement "local_7c[0] = 0;" (assignment_expression "local_7c[0] = 0" (subscript_expression "local_7c[0]" (identifier "local_7c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_7c[1] = 0;" (assignment_expression "local_7c[1] = 0" (subscript_expression "local_7c[1]" (identifier "local_7c") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_7c[3] == 0 && local_7c[2] == 0) {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }\n                          else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }" (if "if") (parenthesized_expression "(local_7c[3] == 0 && local_7c[2] == 0)" (( "(") (binary_expression "local_7c[3] == 0 && local_7c[2] == 0" (binary_expression "local_7c[3] == 0" (subscript_expression "local_7c[3]" (identifier "local_7c") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_7c[2] == 0" (subscript_expression "local_7c[2]" (identifier "local_7c") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                            bVar23 = CARRY4((uint)local_84,local_7c[2]);\n                            local_84 = local_84 + local_7c[2];\n                            local_80 = local_80 + local_7c[3] + (uint)bVar23;\n                          }" ({ "{") (expression_statement "iVar3 = FUN_0003e400(uVar28,iVar3);" (assignment_expression "iVar3 = FUN_0003e400(uVar28,iVar3)" (identifier "iVar3") (= "=") (call_expression "FUN_0003e400(uVar28,iVar3)" (identifier "FUN_0003e400") (argument_list "(uVar28,iVar3)" (( "(") (identifier "uVar28") (, ",") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "bVar23 = CARRY4((uint)local_84,local_7c[2]);" (assignment_expression "bVar23 = CARRY4((uint)local_84,local_7c[2])" (identifier "bVar23") (= "=") (call_expression "CARRY4((uint)local_84,local_7c[2])" (identifier "CARRY4") (argument_list "((uint)local_84,local_7c[2])" (( "(") (cast_expression "(uint)local_84" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_84")) (, ",") (subscript_expression "local_7c[2]" (identifier "local_7c") ([ "[") (number_literal "2") (] "]")) () ")")))) (; ";")) (expression_statement "local_84 = local_84 + local_7c[2];" (assignment_expression "local_84 = local_84 + local_7c[2]" (identifier "local_84") (= "=") (binary_expression "local_84 + local_7c[2]" (identifier "local_84") (+ "+") (subscript_expression "local_7c[2]" (identifier "local_7c") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_80 = local_80 + local_7c[3] + (uint)bVar23;" (assignment_expression "local_80 = local_80 + local_7c[3] + (uint)bVar23" (identifier "local_80") (= "=") (binary_expression "local_80 + local_7c[3] + (uint)bVar23" (binary_expression "local_80 + local_7c[3]" (identifier "local_80") (+ "+") (subscript_expression "local_7c[3]" (identifier "local_7c") ([ "[") (number_literal "3") (] "]"))) (+ "+") (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")))) (; ";")) (} "}")) (else_clause "else {\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }" (else "else") (compound_statement "{\n                            iVar3 = FUN_0003e400(uVar28,iVar3);\n                          }" ({ "{") (expression_statement "iVar3 = FUN_0003e400(uVar28,iVar3);" (assignment_expression "iVar3 = FUN_0003e400(uVar28,iVar3)" (identifier "iVar3") (= "=") (call_expression "FUN_0003e400(uVar28,iVar3)" (identifier "FUN_0003e400") (argument_list "(uVar28,iVar3)" (( "(") (identifier "uVar28") (, ",") (identifier "iVar3") () ")")))) (; ";")) (} "}")))) (expression_statement "pbVar22 = pbVar22 + iVar3;" (assignment_expression "pbVar22 = pbVar22 + iVar3" (identifier "pbVar22") (= "=") (binary_expression "pbVar22 + iVar3" (identifier "pbVar22") (+ "+") (identifier "iVar3"))) (; ";")) (if_statement "if (pbVar19 <= pbVar22) break;" (if "if") (parenthesized_expression "(pbVar19 <= pbVar22)" (( "(") (binary_expression "pbVar19 <= pbVar22" (identifier "pbVar19") (<= "<=") (identifier "pbVar22")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" (identifier "uVar28") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }" (else "else") (compound_statement "{\n                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);\n                          uVar28 = uVar28 + (local_7c[2] - 2);\n                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;\n                          uVar20 = (int)local_84 * 9 + uVar7;\n                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);\n                          uVar10 = uVar20 * 9 + local_114;\n                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);\n                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];\n                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);\n                          uVar10 = uVar28 + uVar20 * 9;\n                          uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;\n                          if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }\n                          local_104 = local_104 ^ uVar10;\n                          local_100 = local_100 ^ uVar20;\n                        }" ({ "{") (expression_statement "bVar23 = CARRY4(uVar28,local_7c[2] - 2);" (assignment_expression "bVar23 = CARRY4(uVar28,local_7c[2] - 2)" (identifier "bVar23") (= "=") (call_expression "CARRY4(uVar28,local_7c[2] - 2)" (identifier "CARRY4") (argument_list "(uVar28,local_7c[2] - 2)" (( "(") (identifier "uVar28") (, ",") (binary_expression "local_7c[2] - 2" (subscript_expression "local_7c[2]" (identifier "local_7c") ([ "[") (number_literal "2") (] "]")) (- "-") (number_literal "2")) () ")")))) (; ";")) (expression_statement "uVar28 = uVar28 + (local_7c[2] - 2);" (assignment_expression "uVar28 = uVar28 + (local_7c[2] - 2)" (identifier "uVar28") (= "=") (binary_expression "uVar28 + (local_7c[2] - 2)" (identifier "uVar28") (+ "+") (parenthesized_expression "(local_7c[2] - 2)" (( "(") (binary_expression "local_7c[2] - 2" (subscript_expression "local_7c[2]" (identifier "local_7c") ([ "[") (number_literal "2") (] "]")) (- "-") (number_literal "2")) () ")")))) (; ";")) (expression_statement "iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;" (assignment_expression "iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23" (identifier "iVar3") (= "=") (binary_expression "iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23" (binary_expression "iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2])" (binary_expression "iVar3 + local_7c[3] + -1" (binary_expression "iVar3 + local_7c[3]" (identifier "iVar3") (+ "+") (subscript_expression "local_7c[3]" (identifier "local_7c") ([ "[") (number_literal "3") (] "]"))) (+ "+") (number_literal "-1")) (+ "+") (call_expression "(uint)(1 < local_7c[2])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(1 < local_7c[2])" (( "(") (binary_expression "1 < local_7c[2]" (number_literal "1") (< "<") (subscript_expression "local_7c[2]" (identifier "local_7c") ([ "[") (number_literal "2") (] "]"))) () ")")))) (+ "+") (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")))) (; ";")) (expression_statement "uVar20 = (int)local_84 * 9 + uVar7;" (assignment_expression "uVar20 = (int)local_84 * 9 + uVar7" (identifier "uVar20") (= "=") (binary_expression "(int)local_84 * 9 + uVar7" (binary_expression "(int)local_84 * 9" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (* "*") (number_literal "9")) (+ "+") (identifier "uVar7"))) (; ";")) (expression_statement "iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);" (assignment_expression "iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7)" (identifier "iVar4") (= "=") (binary_expression "local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7)" (binary_expression "local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +\n                                  ((int)uVar7 >> 0x1f)" (binary_expression "local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +\n                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8)" (binary_expression "local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d)" (identifier "local_80") (+ "+") (parenthesized_expression "(local_80 << 3 | (uint)local_84 >> 0x1d)" (( "(") (binary_expression "local_80 << 3 | (uint)local_84 >> 0x1d" (binary_expression "local_80 << 3" (identifier "local_80") (<< "<<") (number_literal "3")) (| "|") (binary_expression "(uint)local_84 >> 0x1d" (cast_expression "(uint)local_84" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_84")) (>> ">>") (number_literal "0x1d"))) () ")"))) (+ "+") (cast_expression "(uint)CARRY4((uint)local_84,(int)local_84 * 8)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)local_84,(int)local_84 * 8)" (identifier "CARRY4") (argument_list "((uint)local_84,(int)local_84 * 8)" (( "(") (cast_expression "(uint)local_84" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_84")) (, ",") (binary_expression "(int)local_84 * 8" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (* "*") (number_literal "8")) () ")"))))) (+ "+") (parenthesized_expression "((int)uVar7 >> 0x1f)" (( "(") (binary_expression "(int)uVar7 >> 0x1f" (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7")) (>> ">>") (number_literal "0x1f")) () ")"))) (+ "+") (cast_expression "(uint)CARRY4((int)local_84 * 9,uVar7)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((int)local_84 * 9,uVar7)" (identifier "CARRY4") (argument_list "((int)local_84 * 9,uVar7)" (( "(") (binary_expression "(int)local_84 * 9" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (* "*") (number_literal "9")) (, ",") (identifier "uVar7") () ")")))))) (; ";")) (expression_statement "uVar10 = uVar20 * 9 + local_114;" (assignment_expression "uVar10 = uVar20 * 9 + local_114" (identifier "uVar10") (= "=") (binary_expression "uVar20 * 9 + local_114" (binary_expression "uVar20 * 9" (identifier "uVar20") (* "*") (number_literal "9")) (+ "+") (identifier "local_114"))) (; ";")) (expression_statement "iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114);" (assignment_expression "iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114)" (identifier "iVar4") (= "=") (binary_expression "(iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +\n                                  (uint)CARRY4(uVar20 * 9,local_114)" (binary_expression "(iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110" (binary_expression "(iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +\n                                  (uint)CARRY4(uVar20 * 8,uVar20)" (binary_expression "(iVar4 * 8 | uVar20 >> 0x1d) + iVar4" (parenthesized_expression "(iVar4 * 8 | uVar20 >> 0x1d)" (( "(") (binary_expression "iVar4 * 8 | uVar20 >> 0x1d" (binary_expression "iVar4 * 8" (identifier "iVar4") (* "*") (number_literal "8")) (| "|") (binary_expression "uVar20 >> 0x1d" (identifier "uVar20") (>> ">>") (number_literal "0x1d"))) () ")")) (+ "+") (identifier "iVar4")) (+ "+") (cast_expression "(uint)CARRY4(uVar20 * 8,uVar20)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar20 * 8,uVar20)" (identifier "CARRY4") (argument_list "(uVar20 * 8,uVar20)" (( "(") (binary_expression "uVar20 * 8" (identifier "uVar20") (* "*") (number_literal "8")) (, ",") (identifier "uVar20") () ")"))))) (+ "+") (identifier "local_110")) (+ "+") (cast_expression "(uint)CARRY4(uVar20 * 9,local_114)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar20 * 9,local_114)" (identifier "CARRY4") (argument_list "(uVar20 * 9,local_114)" (( "(") (binary_expression "uVar20 * 9" (identifier "uVar20") (* "*") (number_literal "9")) (, ",") (identifier "local_114") () ")")))))) (; ";")) (expression_statement "uVar20 = uVar10 * 8 + uVar10 + local_7c[0];" (assignment_expression "uVar20 = uVar10 * 8 + uVar10 + local_7c[0]" (identifier "uVar20") (= "=") (binary_expression "uVar10 * 8 + uVar10 + local_7c[0]" (binary_expression "uVar10 * 8 + uVar10" (binary_expression "uVar10 * 8" (identifier "uVar10") (* "*") (number_literal "8")) (+ "+") (identifier "uVar10")) (+ "+") (subscript_expression "local_7c[0]" (identifier "local_7c") ([ "[") (number_literal "0") (] "]")))) (; ";")) (expression_statement "iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);" (assignment_expression "iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0])" (identifier "iVar4") (= "=") (binary_expression "(iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0]) +\n                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0])" (binary_expression "(iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f) +\n                                  (uint)CARRY4(uVar10,local_7c[0])" (binary_expression "(iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4 + ((int)local_7c[0] >> 0x1f)" (binary_expression "(iVar4 * 8 | uVar10 >> 0x1d) +\n                                  iVar4" (parenthesized_expression "(iVar4 * 8 | uVar10 >> 0x1d)" (( "(") (binary_expression "iVar4 * 8 | uVar10 >> 0x1d" (binary_expression "iVar4 * 8" (identifier "iVar4") (* "*") (number_literal "8")) (| "|") (binary_expression "uVar10 >> 0x1d" (identifier "uVar10") (>> ">>") (number_literal "0x1d"))) () ")")) (+ "+") (identifier "iVar4")) (+ "+") (parenthesized_expression "((int)local_7c[0] >> 0x1f)" (( "(") (binary_expression "(int)local_7c[0] >> 0x1f" (cast_expression "(int)local_7c[0]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_7c[0]" (identifier "local_7c") ([ "[") (number_literal "0") (] "]"))) (>> ">>") (number_literal "0x1f")) () ")"))) (+ "+") (cast_expression "(uint)CARRY4(uVar10,local_7c[0])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar10,local_7c[0])" (identifier "CARRY4") (argument_list "(uVar10,local_7c[0])" (( "(") (identifier "uVar10") (, ",") (subscript_expression "local_7c[0]" (identifier "local_7c") ([ "[") (number_literal "0") (] "]")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar10 * 8,uVar10 + local_7c[0])" (identifier "CARRY4") (argument_list "(uVar10 * 8,uVar10 + local_7c[0])" (( "(") (binary_expression "uVar10 * 8" (identifier "uVar10") (* "*") (number_literal "8")) (, ",") (binary_expression "uVar10 + local_7c[0]" (identifier "uVar10") (+ "+") (subscript_expression "local_7c[0]" (identifier "local_7c") ([ "[") (number_literal "0") (] "]"))) () ")")))))) (; ";")) (expression_statement "uVar10 = uVar28 + uVar20 * 9;" (assignment_expression "uVar10 = uVar28 + uVar20 * 9" (identifier "uVar10") (= "=") (binary_expression "uVar28 + uVar20 * 9" (identifier "uVar28") (+ "+") (binary_expression "uVar20 * 9" (identifier "uVar20") (* "*") (number_literal "9")))) (; ";")) (expression_statement "uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)\n                          ;" (assignment_expression "uVar20 = ((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)" (identifier "uVar20") (= "=") (binary_expression "((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)" (binary_expression "((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +\n                                   (uint)CARRY4(uVar20,uVar20 * 8)" (binary_expression "((int)uVar28 >> 0x1f) +\n                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d)" (binary_expression "((int)uVar28 >> 0x1f) +\n                                   iVar4" (parenthesized_expression "((int)uVar28 >> 0x1f)" (( "(") (binary_expression "(int)uVar28 >> 0x1f" (cast_expression "(int)uVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar28")) (>> ">>") (number_literal "0x1f")) () ")")) (+ "+") (identifier "iVar4")) (+ "+") (parenthesized_expression "(iVar4 * 8 | uVar20 >> 0x1d)" (( "(") (binary_expression "iVar4 * 8 | uVar20 >> 0x1d" (binary_expression "iVar4 * 8" (identifier "iVar4") (* "*") (number_literal "8")) (| "|") (binary_expression "uVar20 >> 0x1d" (identifier "uVar20") (>> ">>") (number_literal "0x1d"))) () ")"))) (+ "+") (cast_expression "(uint)CARRY4(uVar20,uVar20 * 8)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar20,uVar20 * 8)" (identifier "CARRY4") (argument_list "(uVar20,uVar20 * 8)" (( "(") (identifier "uVar20") (, ",") (binary_expression "uVar20 * 8" (identifier "uVar20") (* "*") (number_literal "8")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(uVar28,uVar20 * 9)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar28,uVar20 * 9)" (identifier "CARRY4") (argument_list "(uVar28,uVar20 * 9)" (( "(") (identifier "uVar28") (, ",") (binary_expression "uVar20 * 9" (identifier "uVar20") (* "*") (number_literal "9")) () ")")))))) (; ";")) (if_statement "if (0 < local_2c) {\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }" (if "if") (parenthesized_expression "(0 < local_2c)" (( "(") (binary_expression "0 < local_2c" (number_literal "0") (< "<") (identifier "local_2c")) () ")")) (compound_statement "{\n                            pcVar15 = local_30;\n                            do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);\n                          }" ({ "{") (expression_statement "pcVar15 = local_30;" (assignment_expression "pcVar15 = local_30" (identifier "pcVar15") (= "=") (identifier "local_30")) (; ";")) (do_statement "do {\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            } while (local_30 + local_2c != pcVar15);" (do "do") (compound_statement "{\n                              uVar17 = (uint)*pcVar15;\n                              uVar12 = uVar10 * 8;\n                              uVar11 = uVar10 >> 0x1d;\n                              uVar13 = uVar12 + uVar17;\n                              bVar23 = CARRY4(uVar10,uVar13);\n                              uVar10 = uVar10 + uVar13;\n                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;\n                              pcVar15 = pcVar15 + 1;\n                            }" ({ "{") (expression_statement "uVar17 = (uint)*pcVar15;" (assignment_expression "uVar17 = (uint)*pcVar15" (identifier "uVar17") (= "=") (binary_expression "(uint)*pcVar15" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pcVar15"))) (; ";")) (expression_statement "uVar12 = uVar10 * 8;" (assignment_expression "uVar12 = uVar10 * 8" (identifier "uVar12") (= "=") (binary_expression "uVar10 * 8" (identifier "uVar10") (* "*") (number_literal "8"))) (; ";")) (expression_statement "uVar11 = uVar10 >> 0x1d;" (assignment_expression "uVar11 = uVar10 >> 0x1d" (identifier "uVar11") (= "=") (binary_expression "uVar10 >> 0x1d" (identifier "uVar10") (>> ">>") (number_literal "0x1d"))) (; ";")) (expression_statement "uVar13 = uVar12 + uVar17;" (assignment_expression "uVar13 = uVar12 + uVar17" (identifier "uVar13") (= "=") (binary_expression "uVar12 + uVar17" (identifier "uVar12") (+ "+") (identifier "uVar17"))) (; ";")) (expression_statement "bVar23 = CARRY4(uVar10,uVar13);" (assignment_expression "bVar23 = CARRY4(uVar10,uVar13)" (identifier "bVar23") (= "=") (call_expression "CARRY4(uVar10,uVar13)" (identifier "CARRY4") (argument_list "(uVar10,uVar13)" (( "(") (identifier "uVar10") (, ",") (identifier "uVar13") () ")")))) (; ";")) (expression_statement "uVar10 = uVar10 + uVar13;" (assignment_expression "uVar10 = uVar10 + uVar13" (identifier "uVar10") (= "=") (binary_expression "uVar10 + uVar13" (identifier "uVar10") (+ "+") (identifier "uVar13"))) (; ";")) (expression_statement "uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;" (assignment_expression "uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23" (identifier "uVar20") (= "=") (binary_expression "uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23" (binary_expression "uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +\n                                                (uint)CARRY4(uVar12,uVar17)" (binary_expression "uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f)" (binary_expression "uVar20 + (uVar20 << 3 | uVar11)" (identifier "uVar20") (+ "+") (parenthesized_expression "(uVar20 << 3 | uVar11)" (( "(") (binary_expression "uVar20 << 3 | uVar11" (binary_expression "uVar20 << 3" (identifier "uVar20") (<< "<<") (number_literal "3")) (| "|") (identifier "uVar11")) () ")"))) (+ "+") (parenthesized_expression "((int)uVar17 >> 0x1f)" (( "(") (binary_expression "(int)uVar17 >> 0x1f" (cast_expression "(int)uVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar17")) (>> ">>") (number_literal "0x1f")) () ")"))) (+ "+") (cast_expression "(uint)CARRY4(uVar12,uVar17)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar12,uVar17)" (identifier "CARRY4") (argument_list "(uVar12,uVar17)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar17") () ")"))))) (+ "+") (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")))) (; ";")) (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + 1" (identifier "pcVar15") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_30 + local_2c != pcVar15)" (( "(") (binary_expression "local_30 + local_2c != pcVar15" (binary_expression "local_30 + local_2c" (identifier "local_30") (+ "+") (identifier "local_2c")) (!= "!=") (identifier "pcVar15")) () ")")) (; ";")) (} "}"))) (expression_statement "local_104 = local_104 ^ uVar10;" (assignment_expression "local_104 = local_104 ^ uVar10" (identifier "local_104") (= "=") (binary_expression "local_104 ^ uVar10" (identifier "local_104") (^ "^") (identifier "uVar10"))) (; ";")) (expression_statement "local_100 = local_100 ^ uVar20;" (assignment_expression "local_100 = local_100 ^ uVar20" (identifier "local_100") (= "=") (binary_expression "local_100 ^ uVar20" (identifier "local_100") (^ "^") (identifier "uVar20"))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (goto_statement "goto LAB_0013c8a0;" (goto "goto") (statement_identifier "LAB_0013c8a0") (; ";")) (} "}"))) (expression_statement "local_d0 = local_d0 ^ local_104;" (assignment_expression "local_d0 = local_d0 ^ local_104" (identifier "local_d0") (= "=") (binary_expression "local_d0 ^ local_104" (identifier "local_d0") (^ "^") (identifier "local_104"))) (; ";")) (expression_statement "local_b4 = local_b4 ^ local_100;" (assignment_expression "local_b4 = local_b4 ^ local_100" (identifier "local_b4") (= "=") (binary_expression "local_b4 ^ local_100" (identifier "local_b4") (^ "^") (identifier "local_100"))) (; ";")) (} "}"))) (expression_statement "piVar6 = local_58;" (assignment_expression "piVar6 = local_58" (identifier "piVar6") (= "=") (identifier "local_58")) (; ";")) (if_statement "if (0 < local_54) {\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }" (if "if") (parenthesized_expression "(0 < local_54)" (( "(") (binary_expression "0 < local_54" (number_literal "0") (< "<") (identifier "local_54")) () ")")) (compound_statement "{\n                  iVar4 = 0;\n                  iVar3 = local_54;\n                  do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);\n                }" ({ "{") (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = local_54;" (assignment_expression "iVar3 = local_54" (identifier "iVar3") (= "=") (identifier "local_54")) (; ";")) (do_statement "do {\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  } while (iVar4 < local_54);" (do "do") (compound_statement "{\n                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }\n                    if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }\n                    iVar3 = *(int *)(iVar18 + 0x34);\n                    if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }\n                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }\n                    iVar4 = iVar4 + 1;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                    iVar3 = local_54;\n                    piVar6 = local_58;\n                  }" ({ "{") (while_statement "while (iVar18 = piVar6[iVar4], iVar18 == 0) {\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }" (while "while") (parenthesized_expression "(iVar18 = piVar6[iVar4], iVar18 == 0)" (( "(") (comma_expression "iVar18 = piVar6[iVar4], iVar18 == 0" (assignment_expression "iVar18 = piVar6[iVar4]" (identifier "iVar18") (= "=") (subscript_expression "piVar6[iVar4]" (identifier "piVar6") ([ "[") (identifier "iVar4") (] "]"))) (, ",") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\nLAB_0013c4bb:\n                      iVar4 = iVar4 + 1;\n                      if (iVar3 <= iVar4) goto LAB_0013c5e2;\n                    }" ({ "{") (labeled_statement "LAB_0013c4bb:\n                      iVar4 = iVar4 + 1;" (statement_identifier "LAB_0013c4bb") (: ":") (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (iVar3 <= iVar4) goto LAB_0013c5e2;" (if "if") (parenthesized_expression "(iVar3 <= iVar4)" (( "(") (binary_expression "iVar3 <= iVar4" (identifier "iVar3") (<= "<=") (identifier "iVar4")) () ")")) (goto_statement "goto LAB_0013c5e2;" (goto "goto") (statement_identifier "LAB_0013c5e2") (; ";"))) (} "}"))) (if_statement "if ((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }" (if "if") (parenthesized_expression "((*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0))" (( "(") (binary_expression "(*(int *)(iVar18 + 0x38) == 0) &&\n                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)" (parenthesized_expression "(*(int *)(iVar18 + 0x38) == 0)" (( "(") (binary_expression "*(int *)(iVar18 + 0x38) == 0" (pointer_expression "*(int *)(iVar18 + 0x38)" (* "*") (cast_expression "(int *)(iVar18 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x38)" (( "(") (binary_expression "iVar18 + 0x38" (identifier "iVar18") (+ "+") (number_literal "0x38")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)" (( "(") (comma_expression "iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0" (assignment_expression "iVar3 = *(int *)(iVar18 + 0x40)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar18 + 0x40)" (* "*") (cast_expression "(int *)(iVar18 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x40)" (( "(") (binary_expression "iVar18 + 0x40" (identifier "iVar18") (+ "+") (number_literal "0x40")) () ")"))))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }" ({ "{") (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) == 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fb7a)" (( "(") (binary_expression "unaff_EBP + 0x7fb7a" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fb7a")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbaa)" (( "(") (binary_expression "unaff_EBP + 0x7fbaa" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbaa")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }" (else "else") (compound_statement "{\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }" ({ "{") (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbd6)" (( "(") (binary_expression "unaff_EBP + 0x7fbd6" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbd6")) () ")"))))) () ")")) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" (( "(") (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);" (assignment_expression "iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbb2)" (( "(") (binary_expression "unaff_EBP + 0x7fbb2" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbb2")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8157a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8157a)" (( "(") (binary_expression "unaff_EBP + 0x8157a" (identifier "unaff_EBP") (+ "+") (number_literal "0x8157a")) () ")")))) (= "=") (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar9" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8157a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8157a)" (( "(") (binary_expression "unaff_EBP + 0x8157a" (identifier "unaff_EBP") (+ "+") (number_literal "0x8157a")) () ")")))) (- "-") (identifier "iVar9"))) (; ";")) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8159e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8159e)" (( "(") (binary_expression "unaff_EBP + 0x8159e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8159e")) () ")")))) (= "=") (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8159e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8159e)" (( "(") (binary_expression "unaff_EBP + 0x8159e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8159e")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbaa)" (( "(") (binary_expression "unaff_EBP + 0x7fbaa" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbaa")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbde)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbde)" (( "(") (binary_expression "unaff_EBP + 0x7fbde" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbde")) () ")"))))) () ")")) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" (( "(") (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) () ")"))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (if_statement "if ((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }" (if "if") (parenthesized_expression "((*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0))" (( "(") (binary_expression "(*(char *)(iVar18 + 5) == '\0') &&\n                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)" (parenthesized_expression "(*(char *)(iVar18 + 5) == '\0')" (( "(") (binary_expression "*(char *)(iVar18 + 5) == '\0'" (pointer_expression "*(char *)(iVar18 + 5)" (* "*") (cast_expression "(char *)(iVar18 + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 5)" (( "(") (binary_expression "iVar18 + 5" (identifier "iVar18") (+ "+") (number_literal "5")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)" (( "(") (comma_expression "iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0" (assignment_expression "iVar3 = *(int *)(iVar18 + 0x28)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar18 + 0x28)" (* "*") (cast_expression "(int *)(iVar18 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x28)" (( "(") (binary_expression "iVar18 + 0x28" (identifier "iVar18") (+ "+") (number_literal "0x28")) () ")"))))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }\n                    }" ({ "{") (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }\n                      else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) == 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fb7a)" (( "(") (binary_expression "unaff_EBP + 0x7fb7a" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fb7a")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                      }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbaa)" (( "(") (binary_expression "unaff_EBP + 0x7fbaa" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbaa")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }" (else "else") (compound_statement "{\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;\n                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }\n                      }" ({ "{") (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                        }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbd6)" (( "(") (binary_expression "unaff_EBP + 0x7fbd6" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbd6")) () ")"))))) () ")")) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" (( "(") (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);" (assignment_expression "iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbb2)" (( "(") (binary_expression "unaff_EBP + 0x7fbb2" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbb2")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8157a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8157a)" (( "(") (binary_expression "unaff_EBP + 0x8157a" (identifier "unaff_EBP") (+ "+") (number_literal "0x8157a")) () ")")))) (= "=") (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar9" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8157a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8157a)" (( "(") (binary_expression "unaff_EBP + 0x8157a" (identifier "unaff_EBP") (+ "+") (number_literal "0x8157a")) () ")")))) (- "-") (identifier "iVar9"))) (; ";")) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8159e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8159e)" (( "(") (binary_expression "unaff_EBP + 0x8159e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8159e")) () ")")))) (= "=") (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8159e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8159e)" (( "(") (binary_expression "unaff_EBP + 0x8159e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8159e")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbaa)" (( "(") (binary_expression "unaff_EBP + 0x7fbaa" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbaa")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbde)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbde)" (( "(") (binary_expression "unaff_EBP + 0x7fbde" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbde")) () ")"))))) () ")")) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" (( "(") (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) () ")"))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "iVar3 = *(int *)(iVar18 + 0x34);" (assignment_expression "iVar3 = *(int *)(iVar18 + 0x34)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar18 + 0x34)" (* "*") (cast_expression "(int *)(iVar18 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x34)" (( "(") (binary_expression "iVar18 + 0x34" (identifier "iVar18") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (if_statement "if (iVar3 != 0) {\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      iVar9 = *(int *)(iVar3 + 0x14);\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }\n                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));\n                      if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }\n                      if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }\n                    }" ({ "{") (expression_statement "iVar9 = *(int *)(iVar3 + 0x14);" (assignment_expression "iVar9 = *(int *)(iVar3 + 0x14)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar3 + 0x14)" (* "*") (cast_expression "(int *)(iVar3 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x14)" (( "(") (binary_expression "iVar3 + 0x14" (identifier "iVar3") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }" (if "if") (parenthesized_expression "(*(int *)(iVar9 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(iVar9 + 0xc) != 0" (pointer_expression "*(int *)(iVar9 + 0xc)" (* "*") (cast_expression "(int *)(iVar9 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xc)" (( "(") (binary_expression "iVar9 + 0xc" (identifier "iVar9") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));\n                      }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbd6)" (( "(") (binary_expression "unaff_EBP + 0x7fbd6" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbd6")) () ")"))))) () ")")) (argument_list "(*(int *)(iVar9 + 0xc))" (( "(") (pointer_expression "*(int *)(iVar9 + 0xc)" (* "*") (cast_expression "(int *)(iVar9 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xc)" (( "(") (binary_expression "iVar9 + 0xc" (identifier "iVar9") (+ "+") (number_literal "0xc")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));" (call_expression "FUN_000c0450(*(undefined4 *)(iVar3 + 0x10))" (identifier "FUN_000c0450") (argument_list "(*(undefined4 *)(iVar3 + 0x10))" (( "(") (pointer_expression "*(undefined4 *)(iVar3 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")")))) () ")"))) (; ";")) (if_statement "if (*(int *)(iVar9 + 0x1e0) == 0) {\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }\n                      else {\n                        FUN_0003a540();\n                      }" (if "if") (parenthesized_expression "(*(int *)(iVar9 + 0x1e0) == 0)" (( "(") (binary_expression "*(int *)(iVar9 + 0x1e0) == 0" (pointer_expression "*(int *)(iVar9 + 0x1e0)" (* "*") (cast_expression "(int *)(iVar9 + 0x1e0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x1e0)" (( "(") (binary_expression "iVar9 + 0x1e0" (identifier "iVar9") (+ "+") (number_literal "0x1e0")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }\n                      }" ({ "{") (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }\n                        else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) == 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fb7a)" (( "(") (binary_expression "unaff_EBP + 0x7fb7a" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fb7a")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                        }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbaa)" (( "(") (binary_expression "unaff_EBP + 0x7fbaa" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbaa")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }" (else "else") (compound_statement "{\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;\n                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }\n                        }" ({ "{") (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                          }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbd6)" (( "(") (binary_expression "unaff_EBP + 0x7fbd6" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbd6")) () ")"))))) () ")")) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" (( "(") (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);" (assignment_expression "iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbb2)" (( "(") (binary_expression "unaff_EBP + 0x7fbb2" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbb2")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8157a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8157a)" (( "(") (binary_expression "unaff_EBP + 0x8157a" (identifier "unaff_EBP") (+ "+") (number_literal "0x8157a")) () ")")))) (= "=") (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar8" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8157a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8157a)" (( "(") (binary_expression "unaff_EBP + 0x8157a" (identifier "unaff_EBP") (+ "+") (number_literal "0x8157a")) () ")")))) (- "-") (identifier "iVar8"))) (; ";")) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8159e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8159e)" (( "(") (binary_expression "unaff_EBP + 0x8159e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8159e")) () ")")))) (= "=") (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8159e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8159e)" (( "(") (binary_expression "unaff_EBP + 0x8159e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8159e")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbaa)" (( "(") (binary_expression "unaff_EBP + 0x7fbaa" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbaa")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                          }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbde)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbde)" (( "(") (binary_expression "unaff_EBP + 0x7fbde" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbde")) () ")"))))) () ")")) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" (( "(") (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) () ")"))) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n                        FUN_0003a540();\n                      }" (else "else") (compound_statement "{\n                        FUN_0003a540();\n                      }" ({ "{") (expression_statement "FUN_0003a540();" (call_expression "FUN_0003a540()" (identifier "FUN_0003a540") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (if_statement "if (*(int *)(iVar9 + 0xc) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }" (if "if") (parenthesized_expression "(*(int *)(iVar9 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(iVar9 + 0xc) != 0" (pointer_expression "*(int *)(iVar9 + 0xc)" (* "*") (cast_expression "(int *)(iVar9 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xc)" (( "(") (binary_expression "iVar9 + 0xc" (identifier "iVar9") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));\n                      }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbde)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbde)" (( "(") (binary_expression "unaff_EBP + 0x7fbde" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbde")) () ")"))))) () ")")) (argument_list "(*(int *)(iVar9 + 0xc))" (( "(") (pointer_expression "*(int *)(iVar9 + 0xc)" (* "*") (cast_expression "(int *)(iVar9 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xc)" (( "(") (binary_expression "iVar9 + 0xc" (identifier "iVar9") (+ "+") (number_literal "0xc")) () ")")))) () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) != 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fb7a)" (( "(") (binary_expression "unaff_EBP + 0x7fb7a" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fb7a")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }\n                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);\n                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);\n                      iVar3 = local_54;\n                      piVar6 = local_58;\n                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }\n                      goto LAB_0013c4bb;\n                    }" ({ "{") (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                      }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbd6)" (( "(") (binary_expression "unaff_EBP + 0x7fbd6" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbd6")) () ")"))))) () ")")) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" (( "(") (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);" (assignment_expression "iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(iVar18)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbb2)" (( "(") (binary_expression "unaff_EBP + 0x7fbb2" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbb2")) () ")"))))) () ")")) (argument_list "(iVar18)" (( "(") (identifier "iVar18") () ")")))) (; ";")) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8159e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8159e)" (( "(") (binary_expression "unaff_EBP + 0x8159e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8159e")) () ")")))) (= "=") (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8159e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8159e)" (( "(") (binary_expression "unaff_EBP + 0x8159e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8159e")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8157a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8157a)" (( "(") (binary_expression "unaff_EBP + 0x8157a" (identifier "unaff_EBP") (+ "+") (number_literal "0x8157a")) () ")")))) (= "=") (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar3" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8157a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8157a)" (( "(") (binary_expression "unaff_EBP + 0x8157a" (identifier "unaff_EBP") (+ "+") (number_literal "0x8157a")) () ")")))) (- "-") (identifier "iVar3"))) (; ";")) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar18);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar18)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbaa)" (( "(") (binary_expression "unaff_EBP + 0x7fbaa" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbaa")) () ")"))))) () ")")) (argument_list "(iVar18)" (( "(") (identifier "iVar18") () ")"))) (; ";")) (expression_statement "iVar3 = local_54;" (assignment_expression "iVar3 = local_54" (identifier "iVar3") (= "=") (identifier "local_54")) (; ";")) (expression_statement "piVar6 = local_58;" (assignment_expression "piVar6 = local_58" (identifier "piVar6") (= "=") (identifier "local_58")) (; ";")) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                        iVar3 = local_54;\n                        piVar6 = local_58;\n                      }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbde)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbde)" (( "(") (binary_expression "unaff_EBP + 0x7fbde" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbde")) () ")"))))) () ")")) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" (( "(") (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar3 = local_54;" (assignment_expression "iVar3 = local_54" (identifier "iVar3") (= "=") (identifier "local_54")) (; ";")) (expression_statement "piVar6 = local_58;" (assignment_expression "piVar6 = local_58" (identifier "piVar6") (= "=") (identifier "local_58")) (; ";")) (} "}"))) (goto_statement "goto LAB_0013c4bb;" (goto "goto") (statement_identifier "LAB_0013c4bb") (; ";")) (} "}"))) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar18);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar18)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbaa)" (( "(") (binary_expression "unaff_EBP + 0x7fbaa" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbaa")) () ")"))))) () ")")) (argument_list "(iVar18)" (( "(") (identifier "iVar18") () ")"))) (; ";")) (expression_statement "iVar3 = local_54;" (assignment_expression "iVar3 = local_54" (identifier "iVar3") (= "=") (identifier "local_54")) (; ";")) (expression_statement "piVar6 = local_58;" (assignment_expression "piVar6 = local_58" (identifier "piVar6") (= "=") (identifier "local_58")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 < local_54)" (( "(") (binary_expression "iVar4 < local_54" (identifier "iVar4") (< "<") (identifier "local_54")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_0013c5e2:\n                if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }" (statement_identifier "LAB_0013c5e2") (: ":") (if_statement "if (piVar6 != (int *)0x0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }" (if "if") (parenthesized_expression "(piVar6 != (int *)0x0)" (( "(") (binary_expression "piVar6 != (int *)0x0" (identifier "piVar6") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }" ({ "{") (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) == 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fb7a)" (( "(") (binary_expression "unaff_EBP + 0x7fb7a" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fb7a")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                  }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(piVar6);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(piVar6)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbaa)" (( "(") (binary_expression "unaff_EBP + 0x7fbaa" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbaa")) () ")"))))) () ")")) (argument_list "(piVar6)" (( "(") (identifier "piVar6") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }" (else "else") (compound_statement "{\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }" ({ "{") (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbd6)" (( "(") (binary_expression "unaff_EBP + 0x7fbd6" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbd6")) () ")"))))) () ")")) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" (( "(") (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);" (assignment_expression "iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(piVar6)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbb2)" (( "(") (binary_expression "unaff_EBP + 0x7fbb2" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbb2")) () ")"))))) () ")")) (argument_list "(piVar6)" (( "(") (identifier "piVar6") () ")")))) (; ";")) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8159e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8159e)" (( "(") (binary_expression "unaff_EBP + 0x8159e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8159e")) () ")")))) (= "=") (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8159e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8159e)" (( "(") (binary_expression "unaff_EBP + 0x8159e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8159e")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8157a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8157a)" (( "(") (binary_expression "unaff_EBP + 0x8157a" (identifier "unaff_EBP") (+ "+") (number_literal "0x8157a")) () ")")))) (= "=") (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar3" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8157a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8157a)" (( "(") (binary_expression "unaff_EBP + 0x8157a" (identifier "unaff_EBP") (+ "+") (number_literal "0x8157a")) () ")")))) (- "-") (identifier "iVar3"))) (; ";")) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(piVar6);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(piVar6)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbaa)" (( "(") (binary_expression "unaff_EBP + 0x7fbaa" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbaa")) () ")"))))) () ")")) (argument_list "(piVar6)" (( "(") (identifier "piVar6") () ")"))) (; ";")) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbde)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbde)" (( "(") (binary_expression "unaff_EBP + 0x7fbde" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbde")) () ")"))))) () ")")) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" (( "(") (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) () ")"))) (; ";")) (} "}"))) (} "}")))) (} "}")))) (expression_statement "iVar3 = local_48;" (assignment_expression "iVar3 = local_48" (identifier "iVar3") (= "=") (identifier "local_48")) (; ";")) (if_statement "if (local_48 != 0) {\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }" (if "if") (parenthesized_expression "(local_48 != 0)" (( "(") (binary_expression "local_48 != 0" (identifier "local_48") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }\n                }" ({ "{") (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }\n                  else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) == 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fb7a)" (( "(") (binary_expression "unaff_EBP + 0x7fb7a" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fb7a")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);\n                  }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(local_48);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(local_48)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbaa)" (( "(") (binary_expression "unaff_EBP + 0x7fbaa" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbaa")) () ")"))))) () ")")) (argument_list "(local_48)" (( "(") (identifier "local_48") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }" (else "else") (compound_statement "{\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);\n                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;\n                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);\n                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }\n                  }" ({ "{") (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n                    }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbd6)" (( "(") (binary_expression "unaff_EBP + 0x7fbd6" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbd6")) () ")"))))) () ")")) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" (( "(") (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);" (assignment_expression "iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbb2)" (( "(") (binary_expression "unaff_EBP + 0x7fbb2" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbb2")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8159e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8159e)" (( "(") (binary_expression "unaff_EBP + 0x8159e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8159e")) () ")")))) (= "=") (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8159e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8159e)" (( "(") (binary_expression "unaff_EBP + 0x8159e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8159e")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8157a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8157a)" (( "(") (binary_expression "unaff_EBP + 0x8157a" (identifier "unaff_EBP") (+ "+") (number_literal "0x8157a")) () ")")))) (= "=") (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar4" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8157a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8157a)" (( "(") (binary_expression "unaff_EBP + 0x8157a" (identifier "unaff_EBP") (+ "+") (number_literal "0x8157a")) () ")")))) (- "-") (identifier "iVar4"))) (; ";")) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(iVar3)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbaa)" (( "(") (binary_expression "unaff_EBP + 0x7fbaa" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbaa")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n                    }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbde)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbde)" (( "(") (binary_expression "unaff_EBP + 0x7fbde" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbde")) () ")"))))) () ")")) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" (( "(") (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) () ")"))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "bVar23 = 0xfffffffe < local_114;" (assignment_expression "bVar23 = 0xfffffffe < local_114" (identifier "bVar23") (= "=") (binary_expression "0xfffffffe < local_114" (number_literal "0xfffffffe") (< "<") (identifier "local_114"))) (; ";")) (expression_statement "local_114 = local_114 + 1;" (assignment_expression "local_114 = local_114 + 1" (identifier "local_114") (= "=") (binary_expression "local_114 + 1" (identifier "local_114") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_110 = local_110 + (uint)bVar23;" (assignment_expression "local_110 = local_110 + (uint)bVar23" (identifier "local_110") (= "=") (binary_expression "local_110 + (uint)bVar23" (identifier "local_110") (+ "+") (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)local_114 < *(int *)(param_1 + 0xfc))" (( "(") (binary_expression "(int)local_114 < *(int *)(param_1 + 0xfc)" (cast_expression "(int)local_114" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_114")) (< "<") (pointer_expression "*(int *)(param_1 + 0xfc)" (* "*") (cast_expression "(int *)(param_1 + 0xfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xfc)" (( "(") (binary_expression "param_1 + 0xfc" (identifier "param_1") (+ "+") (number_literal "0xfc")) () ")"))))) () ")")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_12c == (int *)0x0)" (( "(") (binary_expression "local_12c == (int *)0x0" (identifier "local_12c") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "FUN_000bfe40(0);" (call_expression "FUN_000bfe40(0)" (identifier "FUN_000bfe40") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_f0 = local_12c;" (assignment_expression "local_f0 = local_12c" (identifier "local_f0") (= "=") (identifier "local_12c")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }" (else "else") (compound_statement "{\n          iVar4 = FUN_00044730();\n          if (iVar4 == 0) goto LAB_0013be74;\nLAB_0013c124:\n          iVar4 = FUN_00044730();\n          if (iVar4 != 0) goto LAB_0013ba5f;\n          local_68 = (int *)0x0;\n          pcVar15 = (char *)(iVar3 + 10);\n          local_58 = (int *)0x0;\n          cVar2 = *(char *)(iVar3 + 10);\n          iVar3 = 0;\n          if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }\n          if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }\n          local_f0 = (int *)FUN_00101610();\n          local_68 = local_f0;\n          if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }\n        }" ({ "{") (expression_statement "iVar4 = FUN_00044730();" (assignment_expression "iVar4 = FUN_00044730()" (identifier "iVar4") (= "=") (call_expression "FUN_00044730()" (identifier "FUN_00044730") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) goto LAB_0013be74;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0013be74;" (goto "goto") (statement_identifier "LAB_0013be74") (; ";"))) (labeled_statement "LAB_0013c124:\n          iVar4 = FUN_00044730();" (statement_identifier "LAB_0013c124") (: ":") (expression_statement "iVar4 = FUN_00044730();" (assignment_expression "iVar4 = FUN_00044730()" (identifier "iVar4") (= "=") (call_expression "FUN_00044730()" (identifier "FUN_00044730") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar4 != 0) goto LAB_0013ba5f;" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0013ba5f;" (goto "goto") (statement_identifier "LAB_0013ba5f") (; ";"))) (expression_statement "local_68 = (int *)0x0;" (assignment_expression "local_68 = (int *)0x0" (identifier "local_68") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar15 = (char *)(iVar3 + 10);" (assignment_expression "pcVar15 = (char *)(iVar3 + 10)" (identifier "pcVar15") (= "=") (cast_expression "(char *)(iVar3 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 10)" (( "(") (binary_expression "iVar3 + 10" (identifier "iVar3") (+ "+") (number_literal "10")) () ")")))) (; ";")) (expression_statement "local_58 = (int *)0x0;" (assignment_expression "local_58 = (int *)0x0" (identifier "local_58") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "cVar2 = *(char *)(iVar3 + 10);" (assignment_expression "cVar2 = *(char *)(iVar3 + 10)" (identifier "cVar2") (= "=") (pointer_expression "*(char *)(iVar3 + 10)" (* "*") (cast_expression "(char *)(iVar3 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 10)" (( "(") (binary_expression "iVar3 + 10" (identifier "iVar3") (+ "+") (number_literal "10")) () ")"))))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((byte)(cVar2 - 0x30U) < 10) {\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }\n          else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }" (if "if") (parenthesized_expression "((byte)(cVar2 - 0x30U) < 10)" (( "(") (binary_expression "(byte)(cVar2 - 0x30U) < 10" (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar2 - 0x30U)" (( "(") (binary_expression "cVar2 - 0x30U" (identifier "cVar2") (- "-") (number_literal "0x30U")) () ")"))) (< "<") (number_literal "10")) () ")")) (compound_statement "{\n            do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);\n            if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }\n          }" ({ "{") (do_statement "do {\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            } while (iVar3 < 0xccccccb);" (do "do") (compound_statement "{\n              pcVar15 = pcVar15 + 1;\n              iVar3 = cVar2 + -0x30 + iVar3 * 10;\n              cVar2 = *pcVar15;\n              if (9 < (byte)(cVar2 - 0x30U)) break;\n            }" ({ "{") (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + 1" (identifier "pcVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = cVar2 + -0x30 + iVar3 * 10;" (assignment_expression "iVar3 = cVar2 + -0x30 + iVar3 * 10" (identifier "iVar3") (= "=") (binary_expression "cVar2 + -0x30 + iVar3 * 10" (binary_expression "cVar2 + -0x30" (identifier "cVar2") (+ "+") (number_literal "-0x30")) (+ "+") (binary_expression "iVar3 * 10" (identifier "iVar3") (* "*") (number_literal "10")))) (; ";")) (expression_statement "cVar2 = *pcVar15;" (assignment_expression "cVar2 = *pcVar15" (identifier "cVar2") (= "=") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15"))) (; ";")) (if_statement "if (9 < (byte)(cVar2 - 0x30U)) break;" (if "if") (parenthesized_expression "(9 < (byte)(cVar2 - 0x30U))" (( "(") (binary_expression "9 < (byte)(cVar2 - 0x30U)" (number_literal "9") (< "<") (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar2 - 0x30U)" (( "(") (binary_expression "cVar2 - 0x30U" (identifier "cVar2") (- "-") (number_literal "0x30U")) () ")")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(iVar3 < 0xccccccb)" (( "(") (binary_expression "iVar3 < 0xccccccb" (identifier "iVar3") (< "<") (number_literal "0xccccccb")) () ")")) (; ";")) (if_statement "if ((iVar3 == 1) || (0x10 < iVar3)) {\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }\n            else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }" (if "if") (parenthesized_expression "((iVar3 == 1) || (0x10 < iVar3))" (( "(") (binary_expression "(iVar3 == 1) || (0x10 < iVar3)" (parenthesized_expression "(iVar3 == 1)" (( "(") (binary_expression "iVar3 == 1" (identifier "iVar3") (== "==") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(0x10 < iVar3)" (( "(") (binary_expression "0x10 < iVar3" (number_literal "0x10") (< "<") (identifier "iVar3")) () ")"))) () ")")) (compound_statement "{\n              *(undefined4 *)(param_1 + 0x30) = 8;\n            }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x30) = 8;" (assignment_expression "*(undefined4 *)(param_1 + 0x30) = 8" (pointer_expression "*(undefined4 *)(param_1 + 0x30)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (number_literal "8")) (; ";")) (} "}")) (else_clause "else {\n              *(int *)(param_1 + 0x30) = iVar3;\n            }" (else "else") (compound_statement "{\n              *(int *)(param_1 + 0x30) = iVar3;\n            }" ({ "{") (expression_statement "*(int *)(param_1 + 0x30) = iVar3;" (assignment_expression "*(int *)(param_1 + 0x30) = iVar3" (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }" (else "else") (compound_statement "{\n            *(undefined4 *)(param_1 + 0x30) = 0;\n          }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x30) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x30)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (*(char *)(param_1 + 0xe9) == '\0') {\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0xe9) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0xe9) == '\0'" (pointer_expression "*(char *)(param_1 + 0xe9)" (* "*") (cast_expression "(char *)(param_1 + 0xe9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe9)" (( "(") (binary_expression "param_1 + 0xe9" (identifier "param_1") (+ "+") (number_literal "0xe9")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));\n            local_f0 = local_68;\n            if (local_68 != (int *)0x0) goto LAB_0013c0e0;\n            *(undefined1 *)(param_1 + 0xe9) = 1;\n          }" ({ "{") (expression_statement "FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));" (call_expression "FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14))" (identifier "FUN_00107d80") (argument_list "(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,\n                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14))" (( "(") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (binary_expression "unaff_EBP + 0x324ae" (identifier "unaff_EBP") (+ "+") (number_literal "0x324ae")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x14)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) () ")"))) (; ";")) (expression_statement "local_f0 = local_68;" (assignment_expression "local_f0 = local_68" (identifier "local_f0") (= "=") (identifier "local_68")) (; ";")) (if_statement "if (local_68 != (int *)0x0) goto LAB_0013c0e0;" (if "if") (parenthesized_expression "(local_68 != (int *)0x0)" (( "(") (binary_expression "local_68 != (int *)0x0" (identifier "local_68") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0013c0e0;" (goto "goto") (statement_identifier "LAB_0013c0e0") (; ";"))) (expression_statement "*(undefined1 *)(param_1 + 0xe9) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xe9) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xe9)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xe9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe9)" (( "(") (binary_expression "param_1 + 0xe9" (identifier "param_1") (+ "+") (number_literal "0xe9")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "local_f0 = (int *)FUN_00101610();" (assignment_expression "local_f0 = (int *)FUN_00101610()" (identifier "local_f0") (= "=") (cast_expression "(int *)FUN_00101610()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00101610()" (identifier "FUN_00101610") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_68 = local_f0;" (assignment_expression "local_68 = local_f0" (identifier "local_68") (= "=") (identifier "local_f0")) (; ";")) (if_statement "if (local_f0 == (int *)0x0) {\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }" (if "if") (parenthesized_expression "(local_f0 == (int *)0x0)" (( "(") (binary_expression "local_f0 == (int *)0x0" (identifier "local_f0") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            FUN_00079e80();\n            FUN_00079e00();\n            FUN_000e7e00(local_58);\n            local_f0 = (int *)FUN_000bfe40(local_58);\n          }" ({ "{") (expression_statement "FUN_00079e80();" (call_expression "FUN_00079e80()" (identifier "FUN_00079e80") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00079e00();" (call_expression "FUN_00079e00()" (identifier "FUN_00079e00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000e7e00(local_58);" (call_expression "FUN_000e7e00(local_58)" (identifier "FUN_000e7e00") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (expression_statement "local_f0 = (int *)FUN_000bfe40(local_58);" (assignment_expression "local_f0 = (int *)FUN_000bfe40(local_58)" (identifier "local_f0") (= "=") (cast_expression "(int *)FUN_000bfe40(local_58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000bfe40(local_58)" (identifier "FUN_000bfe40") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))))) (; ";")) (} "}"))) (} "}")))) (} "}")))) (labeled_statement "LAB_0013c0e0:\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);" (statement_identifier "LAB_0013c0e0") (: ":") (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";"))) (goto_statement "goto LAB_0013ba71;" (goto "goto") (statement_identifier "LAB_0013ba71") (; ";")) (} "}"))) (expression_statement "piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4];" (assignment_expression "piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4]" (identifier "piVar6") (= "=") (cast_expression "(int *)param_3[*(int *)(param_1 + 0x18) + 4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[*(int *)(param_1 + 0x18) + 4]" (identifier "param_3") ([ "[") (binary_expression "*(int *)(param_1 + 0x18) + 4" (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "4")) (] "]")))) (; ";")) (expression_statement "uVar1 = *(ushort *)(piVar6 + 2);" (assignment_expression "uVar1 = *(ushort *)(piVar6 + 2)" (identifier "uVar1") (= "=") (pointer_expression "*(ushort *)(piVar6 + 2)" (* "*") (cast_expression "(ushort *)(piVar6 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar6 + 2)" (( "(") (binary_expression "piVar6 + 2" (identifier "piVar6") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (if_statement "if ((uVar1 & 4) == 0) {\n      if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }\n    }\n    else {\n      iVar3 = *piVar6;\n    }" (if "if") (parenthesized_expression "((uVar1 & 4) == 0)" (( "(") (binary_expression "(uVar1 & 4) == 0" (parenthesized_expression "(uVar1 & 4)" (( "(") (binary_expression "uVar1 & 4" (identifier "uVar1") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }\n    }" ({ "{") (if_statement "if ((uVar1 & 8) == 0) {\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }\n      else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }" (if "if") (parenthesized_expression "((uVar1 & 8) == 0)" (( "(") (binary_expression "(uVar1 & 8) == 0" (parenthesized_expression "(uVar1 & 8)" (( "(") (binary_expression "uVar1 & 8" (identifier "uVar1") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;\n        iVar3 = FUN_0003c930();\n      }" ({ "{") (if_statement "if ((uVar1 & 0x12) == 0) goto LAB_0013b900;" (if "if") (parenthesized_expression "((uVar1 & 0x12) == 0)" (( "(") (binary_expression "(uVar1 & 0x12) == 0" (parenthesized_expression "(uVar1 & 0x12)" (( "(") (binary_expression "uVar1 & 0x12" (identifier "uVar1") (& "&") (number_literal "0x12")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0013b900;" (goto "goto") (statement_identifier "LAB_0013b900") (; ";"))) (expression_statement "iVar3 = FUN_0003c930();" (assignment_expression "iVar3 = FUN_0003c930()" (identifier "iVar3") (= "=") (call_expression "FUN_0003c930()" (identifier "FUN_0003c930") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }" (else "else") (compound_statement "{\n        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);\n      }" ({ "{") (expression_statement "iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);" (assignment_expression "iVar3 = FUN_0003c8b0(*piVar6,piVar6[1])" (identifier "iVar3") (= "=") (call_expression "FUN_0003c8b0(*piVar6,piVar6[1])" (identifier "FUN_0003c8b0") (argument_list "(*piVar6,piVar6[1])" (( "(") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (, ",") (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      iVar3 = *piVar6;\n    }" (else "else") (compound_statement "{\n      iVar3 = *piVar6;\n    }" ({ "{") (expression_statement "iVar3 = *piVar6;" (assignment_expression "iVar3 = *piVar6" (identifier "iVar3") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (} "}")))) (if_statement "if (iVar3 < 0) {\n      local_98 = (int *)0x13;\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba95;\n    }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      local_98 = (int *)0x13;\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n      goto LAB_0013ba95;\n    }" ({ "{") (expression_statement "local_98 = (int *)0x13;" (assignment_expression "local_98 = (int *)0x13" (identifier "local_98") (= "=") (cast_expression "(int *)0x13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x13"))) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (goto_statement "goto LAB_0013ba95;" (goto "goto") (statement_identifier "LAB_0013ba95") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0013b900:\n  iVar3 = FUN_00067fc0();" (statement_identifier "LAB_0013b900") (: ":") (expression_statement "iVar3 = FUN_00067fc0();" (assignment_expression "iVar3 = FUN_00067fc0()" (identifier "iVar3") (= "=") (call_expression "FUN_00067fc0()" (identifier "FUN_00067fc0") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if ((iVar3 != 0) || (__s = (void *)FUN_00055780(), __s == (void *)0x0)) {\n    local_98 = (int *)0x7;\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    goto LAB_0013ba95;\n  }" (if "if") (parenthesized_expression "((iVar3 != 0) || (__s = (void *)FUN_00055780(), __s == (void *)0x0))" (( "(") (binary_expression "(iVar3 != 0) || (__s = (void *)FUN_00055780(), __s == (void *)0x0)" (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(__s = (void *)FUN_00055780(), __s == (void *)0x0)" (( "(") (comma_expression "__s = (void *)FUN_00055780(), __s == (void *)0x0" (assignment_expression "__s = (void *)FUN_00055780()" (identifier "__s") (= "=") (cast_expression "(void *)FUN_00055780()" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00055780()" (identifier "FUN_00055780") (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "__s == (void *)0x0" (identifier "__s") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n    local_98 = (int *)0x7;\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    goto LAB_0013ba95;\n  }" ({ "{") (expression_statement "local_98 = (int *)0x7;" (assignment_expression "local_98 = (int *)0x7" (identifier "local_98") (= "=") (cast_expression "(int *)0x7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7"))) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (goto_statement "goto LAB_0013ba95;" (goto "goto") (statement_identifier "LAB_0013ba95") (; ";")) (} "}"))) (expression_statement "iVar3 = *(int *)(param_1 + 0x18) + 1;" (assignment_expression "iVar3 = *(int *)(param_1 + 0x18) + 1" (identifier "iVar3") (= "=") (binary_expression "*(int *)(param_1 + 0x18) + 1" (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "memset(__s,0,iVar3 * 8);" (call_expression "memset(__s,0,iVar3 * 8)" (identifier "memset") (argument_list "(__s,0,iVar3 * 8)" (( "(") (identifier "__s") (, ",") (number_literal "0") (, ",") (binary_expression "iVar3 * 8" (identifier "iVar3") (* "*") (number_literal "8")) () ")"))) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (if_statement "if (*(int *)(param_1 + 0x108) == 0) {\n    local_98 = (int *)FUN_00101610();\n    piVar6 = local_58;\n    if (local_98 == (int *)0x0) {\n      iVar4 = FUN_00079820();\n      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }\n      FUN_000e7e00(local_58);\n      local_98 = (int *)FUN_000bfe40(local_58);\n      if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }\n  }\n  else {\n    local_98 = (int *)0x0;\n    if (param_2 < 2) {\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }\n    else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }\n    if (*(char *)(param_1 + 0xe8) != '\0') {\n      FUN_00111db0(__s,local_94);\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x108) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x108) == 0" (pointer_expression "*(int *)(param_1 + 0x108)" (* "*") (cast_expression "(int *)(param_1 + 0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_98 = (int *)FUN_00101610();\n    piVar6 = local_58;\n    if (local_98 == (int *)0x0) {\n      iVar4 = FUN_00079820();\n      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }\n      FUN_000e7e00(local_58);\n      local_98 = (int *)FUN_000bfe40(local_58);\n      if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }\n  }" ({ "{") (expression_statement "local_98 = (int *)FUN_00101610();" (assignment_expression "local_98 = (int *)FUN_00101610()" (identifier "local_98") (= "=") (cast_expression "(int *)FUN_00101610()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00101610()" (identifier "FUN_00101610") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "piVar6 = local_58;" (assignment_expression "piVar6 = local_58" (identifier "piVar6") (= "=") (identifier "local_58")) (; ";")) (if_statement "if (local_98 == (int *)0x0) {\n      iVar4 = FUN_00079820();\n      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }\n      FUN_000e7e00(local_58);\n      local_98 = (int *)FUN_000bfe40(local_58);\n      if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }" (if "if") (parenthesized_expression "(local_98 == (int *)0x0)" (( "(") (binary_expression "local_98 == (int *)0x0" (identifier "local_98") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar4 = FUN_00079820();\n      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }\n      FUN_000e7e00(local_58);\n      local_98 = (int *)FUN_000bfe40(local_58);\n      if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }\n    }" ({ "{") (expression_statement "iVar4 = FUN_00079820();" (assignment_expression "iVar4 = FUN_00079820()" (identifier "iVar4") (= "=") (call_expression "FUN_00079820()" (identifier "FUN_00079820") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }" (if "if") (parenthesized_expression "((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0))" (( "(") (binary_expression "(iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)" (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(*piVar6 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(*piVar6 + 0xc) != 0" (pointer_expression "*(int *)(*piVar6 + 0xc)" (* "*") (cast_expression "(int *)(*piVar6 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar6 + 0xc)" (( "(") (binary_expression "*piVar6 + 0xc" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));\n      }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbde)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbde)" (( "(") (binary_expression "unaff_EBP + 0x7fbde" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbde")) () ")"))))) () ")")) (argument_list "(*(int *)(*piVar6 + 0xc))" (( "(") (pointer_expression "*(int *)(*piVar6 + 0xc)" (* "*") (cast_expression "(int *)(*piVar6 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar6 + 0xc)" (( "(") (binary_expression "*piVar6 + 0xc" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (+ "+") (number_literal "0xc")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000e7e00(local_58);" (call_expression "FUN_000e7e00(local_58)" (identifier "FUN_000e7e00") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (expression_statement "local_98 = (int *)FUN_000bfe40(local_58);" (assignment_expression "local_98 = (int *)FUN_000bfe40(local_58)" (identifier "local_98") (= "=") (cast_expression "(int *)FUN_000bfe40(local_58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000bfe40(local_58)" (identifier "FUN_000bfe40") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))))) (; ";")) (if_statement "if (local_98 == (int *)0x0) {\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }" (if "if") (parenthesized_expression "(local_98 == (int *)0x0)" (( "(") (binary_expression "local_98 == (int *)0x0" (identifier "local_98") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }\n        goto LAB_0013baf0;\n      }" ({ "{") (if_statement "if (1 < param_2) {\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }" (if "if") (parenthesized_expression "(1 < param_2)" (( "(") (binary_expression "1 < param_2" (number_literal "1") (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;\n          goto LAB_0013c280;\n        }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x28) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x28) == 0" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0013bc30;" (goto "goto") (statement_identifier "LAB_0013bc30") (; ";"))) (goto_statement "goto LAB_0013c280;" (goto "goto") (statement_identifier "LAB_0013c280") (; ";")) (} "}"))) (goto_statement "goto LAB_0013baf0;" (goto "goto") (statement_identifier "LAB_0013baf0") (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n    local_98 = (int *)0x0;\n    if (param_2 < 2) {\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }\n    else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }\n    if (*(char *)(param_1 + 0xe8) != '\0') {\n      FUN_00111db0(__s,local_94);\n    }\n  }" (else "else") (compound_statement "{\n    local_98 = (int *)0x0;\n    if (param_2 < 2) {\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }\n    else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }\n    if (*(char *)(param_1 + 0xe8) != '\0') {\n      FUN_00111db0(__s,local_94);\n    }\n  }" ({ "{") (expression_statement "local_98 = (int *)0x0;" (assignment_expression "local_98 = (int *)0x0" (identifier "local_98") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (param_2 < 2) {\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }\n    else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }" (if "if") (parenthesized_expression "(param_2 < 2)" (( "(") (binary_expression "param_2 < 2" (identifier "param_2") (< "<") (number_literal "2")) () ")")) (compound_statement "{\nLAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }\n    }" ({ "{") (labeled_statement "LAB_0013baf0:\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }" (statement_identifier "LAB_0013baf0") (: ":") (if_statement "if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }" (if "if") (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')" (( "(") (binary_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" (* "*") (cast_expression "(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" (( "(") (binary_expression "unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" (identifier "unaff_EBP") (+ "+") (number_literal "0x2847a")) (+ "+") (parenthesized_expression "(*(ushort *)(*param_3 + 8) & 0x1f)" (( "(") (binary_expression "*(ushort *)(*param_3 + 8) & 0x1f" (pointer_expression "*(ushort *)(*param_3 + 8)" (* "*") (cast_expression "(ushort *)(*param_3 + 8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_3 + 8)" (( "(") (binary_expression "*param_3 + 8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (!= "!=") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (compound_statement "{\nLAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);\n        local_98 = piVar6;\n        goto LAB_0013bcfe;\n      }" ({ "{") (labeled_statement "LAB_0013bce0:\n        piVar6 = (int *)FUN_0013b480(__s);" (statement_identifier "LAB_0013bce0") (: ":") (expression_statement "piVar6 = (int *)FUN_0013b480(__s);" (assignment_expression "piVar6 = (int *)FUN_0013b480(__s)" (identifier "piVar6") (= "=") (cast_expression "(int *)FUN_0013b480(__s)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0013b480(__s)" (identifier "FUN_0013b480") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))))) (; ";"))) (expression_statement "local_98 = piVar6;" (assignment_expression "local_98 = piVar6" (identifier "local_98") (= "=") (identifier "piVar6")) (; ";")) (goto_statement "goto LAB_0013bcfe;" (goto "goto") (statement_identifier "LAB_0013bcfe") (; ";")) (} "}")))) (} "}")) (else_clause "else if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }" (else "else") (if_statement "if (*(int *)(param_1 + 0x28) == 0) {\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }\n    else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x28) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x28) == 0" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      piVar6 = (int *)0x0;\nLAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }\n    }" ({ "{") (labeled_statement "LAB_0013bc30:\n      if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }" (statement_identifier "LAB_0013bc30") (: ":") (if_statement "if ((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {\nLAB_0013c280:\n        bVar23 = false;\n      }\n      else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }" (if "if") (parenthesized_expression "((*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05'))" (( "(") (binary_expression "(*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&\n         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')" (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05')" (( "(") (binary_expression "*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f))" (* "*") (cast_expression "(char *)(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f))" (( "(") (binary_expression "unaff_EBP + 0x2847a +\n                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" (identifier "unaff_EBP") (+ "+") (number_literal "0x2847a")) (+ "+") (parenthesized_expression "(*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)" (( "(") (binary_expression "*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f" (pointer_expression "*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8)" (* "*") (cast_expression "(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3[*(int *)(param_1 + 0x18) + 3] + 8)" (( "(") (binary_expression "param_3[*(int *)(param_1 + 0x18) + 3] + 8" (subscript_expression "param_3[*(int *)(param_1 + 0x18) + 3]" (identifier "param_3") ([ "[") (binary_expression "*(int *)(param_1 + 0x18) + 3" (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "3")) (] "]")) (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (== "==") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')" (( "(") (binary_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f))" (* "*") (cast_expression "(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f))" (( "(") (binary_expression "unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" (identifier "unaff_EBP") (+ "+") (number_literal "0x2847a")) (+ "+") (parenthesized_expression "(*(ushort *)(param_3[1] + 8) & 0x1f)" (( "(") (binary_expression "*(ushort *)(param_3[1] + 8) & 0x1f" (pointer_expression "*(ushort *)(param_3[1] + 8)" (* "*") (cast_expression "(ushort *)(param_3[1] + 8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3[1] + 8)" (( "(") (binary_expression "param_3[1] + 8" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (== "==") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")"))) () ")")) (compound_statement "{\nLAB_0013c280:\n        bVar23 = false;\n      }" ({ "{") (labeled_statement "LAB_0013c280:\n        bVar23 = false;" (statement_identifier "LAB_0013c280") (: ":") (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";"))) (} "}")) (else_clause "else {\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }" (else "else") (compound_statement "{\n        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }\n        if (local_98 != (int *)0x0) goto LAB_0013bb29;\n      }" ({ "{") (if_statement "if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }\n        else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }" (if "if") (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05')" (( "(") (binary_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" (* "*") (cast_expression "(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" (( "(") (binary_expression "unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" (identifier "unaff_EBP") (+ "+") (number_literal "0x2847a")) (+ "+") (parenthesized_expression "(*(ushort *)(*param_3 + 8) & 0x1f)" (( "(") (binary_expression "*(ushort *)(*param_3 + 8) & 0x1f" (pointer_expression "*(ushort *)(*param_3 + 8)" (* "*") (cast_expression "(ushort *)(*param_3 + 8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_3 + 8)" (( "(") (binary_expression "*param_3 + 8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (== "==") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (compound_statement "{\nLAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }\n        }" ({ "{") (labeled_statement "LAB_0013bc87:\n          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }" (statement_identifier "LAB_0013bc87") (: ":") (if_statement "if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             ) {\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }\n          else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }" (if "if") (parenthesized_expression "((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'\n             )" (( "(") (binary_expression "(&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'" (subscript_expression "(&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP]" (parenthesized_expression "(&UNK_000274d9)" (( "(") (pointer_expression "&UNK_000274d9" (& "&") (identifier "UNK_000274d9")) () ")")) ([ "[") (binary_expression "(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP" (binary_expression "(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(*(int *)(param_1 + 0xc) + 0x52)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0xc) + 0x52)" (( "(") (binary_expression "*(int *)(param_1 + 0xc) + 0x52" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x52")) () ")")))) (+ "+") (identifier "unaff_EBP")) (] "]")) (== "==") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (compound_statement "{\n            local_98 = (int *)FUN_0013b480(__s);\n            bVar23 = false;\n          }" ({ "{") (expression_statement "local_98 = (int *)FUN_0013b480(__s);" (assignment_expression "local_98 = (int *)FUN_0013b480(__s)" (identifier "local_98") (= "=") (cast_expression "(int *)FUN_0013b480(__s)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0013b480(__s)" (identifier "FUN_0013b480") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))))) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (} "}")) (else_clause "else {\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }" (else "else") (compound_statement "{\n            local_98 = (int *)FUN_0010b320();\n            bVar23 = true;\n          }" ({ "{") (expression_statement "local_98 = (int *)FUN_0010b320();" (assignment_expression "local_98 = (int *)FUN_0010b320()" (identifier "local_98") (= "=") (cast_expression "(int *)FUN_0010b320()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0010b320()" (identifier "FUN_0010b320") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" (identifier "bVar23") (= "=") (true "true")) (; ";")) (} "}"))))) (} "}")) (else_clause "else {\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }" (else "else") (compound_statement "{\n          lVar25 = FUN_00045540();\n          lVar26 = FUN_00045540();\n          if (lVar25 != lVar26) goto LAB_0013bc87;\n          bVar23 = false;\n        }" ({ "{") (expression_statement "lVar25 = FUN_00045540();" (assignment_expression "lVar25 = FUN_00045540()" (identifier "lVar25") (= "=") (call_expression "FUN_00045540()" (identifier "FUN_00045540") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "lVar26 = FUN_00045540();" (assignment_expression "lVar26 = FUN_00045540()" (identifier "lVar26") (= "=") (call_expression "FUN_00045540()" (identifier "FUN_00045540") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (lVar25 != lVar26) goto LAB_0013bc87;" (if "if") (parenthesized_expression "(lVar25 != lVar26)" (( "(") (binary_expression "lVar25 != lVar26" (identifier "lVar25") (!= "!=") (identifier "lVar26")) () ")")) (goto_statement "goto LAB_0013bc87;" (goto "goto") (statement_identifier "LAB_0013bc87") (; ";"))) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (} "}")))) (if_statement "if (local_98 != (int *)0x0) goto LAB_0013bb29;" (if "if") (parenthesized_expression "(local_98 != (int *)0x0)" (( "(") (binary_expression "local_98 != (int *)0x0" (identifier "local_98") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0013bb29;" (goto "goto") (statement_identifier "LAB_0013bb29") (; ";"))) (} "}"))))) (if_statement "if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;" (if "if") (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')" (( "(") (binary_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" (* "*") (cast_expression "(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" (( "(") (binary_expression "unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" (identifier "unaff_EBP") (+ "+") (number_literal "0x2847a")) (+ "+") (parenthesized_expression "(*(ushort *)(*param_3 + 8) & 0x1f)" (( "(") (binary_expression "*(ushort *)(*param_3 + 8) & 0x1f" (pointer_expression "*(ushort *)(*param_3 + 8)" (* "*") (cast_expression "(ushort *)(*param_3 + 8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_3 + 8)" (( "(") (binary_expression "*param_3 + 8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (!= "!=") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (goto_statement "goto LAB_0013bce0;" (goto "goto") (statement_identifier "LAB_0013bce0") (; ";"))) (expression_statement "piVar6 = (int *)0x0;" (assignment_expression "piVar6 = (int *)0x0" (identifier "piVar6") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0013bcfe:\n      local_12c = (int *)((int)__s + iVar3 * 4);" (statement_identifier "LAB_0013bcfe") (: ":") (expression_statement "local_12c = (int *)((int)__s + iVar3 * 4);" (assignment_expression "local_12c = (int *)((int)__s + iVar3 * 4)" (identifier "local_12c") (= "=") (cast_expression "(int *)((int)__s + iVar3 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__s + iVar3 * 4)" (( "(") (binary_expression "(int)__s + iVar3 * 4" (cast_expression "(int)__s" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__s")) (+ "+") (binary_expression "iVar3 * 4" (identifier "iVar3") (* "*") (number_literal "4"))) () ")")))) (; ";"))) (if_statement "if ((1 < param_2) && (piVar6 == (int *)0x0)) {\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }" (if "if") (parenthesized_expression "((1 < param_2) && (piVar6 == (int *)0x0))" (( "(") (binary_expression "(1 < param_2) && (piVar6 == (int *)0x0)" (parenthesized_expression "(1 < param_2)" (( "(") (binary_expression "1 < param_2" (number_literal "1") (< "<") (identifier "param_2")) () ")")) (&& "&&") (parenthesized_expression "(piVar6 == (int *)0x0)" (( "(") (binary_expression "piVar6 == (int *)0x0" (identifier "piVar6") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n        local_124 = FUN_00045540();\n        if (!bVar23) goto LAB_0013b9c2;\n        goto LAB_0013bd4a;\n      }" ({ "{") (expression_statement "local_124 = FUN_00045540();" (assignment_expression "local_124 = FUN_00045540()" (identifier "local_124") (= "=") (call_expression "FUN_00045540()" (identifier "FUN_00045540") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (!bVar23) goto LAB_0013b9c2;" (if "if") (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (goto_statement "goto LAB_0013b9c2;" (goto "goto") (statement_identifier "LAB_0013b9c2") (; ";"))) (goto_statement "goto LAB_0013bd4a;" (goto "goto") (statement_identifier "LAB_0013bd4a") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }" (else "else") (compound_statement "{\n      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;\n      local_12c = (int *)((int)__s + iVar3 * 4);\n      local_124 = FUN_00045540();\nLAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();\n      if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }\n      local_98 = piVar6;\n      if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }\n      local_94 = 1;\n    }" ({ "{") (if_statement "if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')\n      goto LAB_0013bce0;" (if "if") (parenthesized_expression "(*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')" (( "(") (binary_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05'" (pointer_expression "*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" (* "*") (cast_expression "(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f))" (( "(") (binary_expression "unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)" (binary_expression "unaff_EBP + 0x2847a" (identifier "unaff_EBP") (+ "+") (number_literal "0x2847a")) (+ "+") (parenthesized_expression "(*(ushort *)(*param_3 + 8) & 0x1f)" (( "(") (binary_expression "*(ushort *)(*param_3 + 8) & 0x1f" (pointer_expression "*(ushort *)(*param_3 + 8)" (* "*") (cast_expression "(ushort *)(*param_3 + 8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_3 + 8)" (( "(") (binary_expression "*param_3 + 8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (!= "!=") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (goto_statement "goto LAB_0013bce0;" (goto "goto") (statement_identifier "LAB_0013bce0") (; ";"))) (expression_statement "local_12c = (int *)((int)__s + iVar3 * 4);" (assignment_expression "local_12c = (int *)((int)__s + iVar3 * 4)" (identifier "local_12c") (= "=") (cast_expression "(int *)((int)__s + iVar3 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__s + iVar3 * 4)" (( "(") (binary_expression "(int)__s + iVar3 * 4" (cast_expression "(int)__s" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__s")) (+ "+") (binary_expression "iVar3 * 4" (identifier "iVar3") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "local_124 = FUN_00045540();" (assignment_expression "local_124 = FUN_00045540()" (identifier "local_124") (= "=") (call_expression "FUN_00045540()" (identifier "FUN_00045540") (argument_list "()" (( "(") () ")")))) (; ";")) (labeled_statement "LAB_0013b9c2:\n      local_98 = (int *)FUN_0010b320();" (statement_identifier "LAB_0013b9c2") (: ":") (expression_statement "local_98 = (int *)FUN_0010b320();" (assignment_expression "local_98 = (int *)FUN_0010b320()" (identifier "local_98") (= "=") (cast_expression "(int *)FUN_0010b320()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0010b320()" (identifier "FUN_0010b320") (argument_list "()" (( "(") () ")"))))) (; ";"))) (if_statement "if (local_98 == (int *)0x13) {\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }\n      else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(local_98 == (int *)0x13)" (( "(") (binary_expression "local_98 == (int *)0x13" (identifier "local_98") (== "==") (cast_expression "(int *)0x13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x13"))) () ")")) (compound_statement "{\n        piVar6 = local_98;\n        if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }\n      }" ({ "{") (expression_statement "piVar6 = local_98;" (assignment_expression "piVar6 = local_98" (identifier "piVar6") (= "=") (identifier "local_98")) (; ";")) (if_statement "if (*(int *)(param_1 + 0x28) == 0) {\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x28) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x28) == 0" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_98 = (int *)0x10b;\n          piVar6 = local_98;\n        }" ({ "{") (expression_statement "local_98 = (int *)0x10b;" (assignment_expression "local_98 = (int *)0x10b" (identifier "local_98") (= "=") (cast_expression "(int *)0x10b" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x10b"))) (; ";")) (expression_statement "piVar6 = local_98;" (assignment_expression "piVar6 = local_98" (identifier "piVar6") (= "=") (identifier "local_98")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }" (else "else") (compound_statement "{\nLAB_0013bd4a:\n        piVar6 = local_98;\n        if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }\n      }" ({ "{") (labeled_statement "LAB_0013bd4a:\n        piVar6 = local_98;" (statement_identifier "LAB_0013bd4a") (: ":") (expression_statement "piVar6 = local_98;" (assignment_expression "piVar6 = local_98" (identifier "piVar6") (= "=") (identifier "local_98")) (; ";"))) (if_statement "if (local_98 == (int *)0x0) {\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }" (if "if") (parenthesized_expression "(local_98 == (int *)0x0)" (( "(") (binary_expression "local_98 == (int *)0x0" (identifier "local_98") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          uVar7 = *param_4;\n          uVar28 = param_4[1];\n          uVar10 = *(uint *)(param_1 + 0x110);\n          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));\n          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }\n        }" ({ "{") (expression_statement "uVar7 = *param_4;" (assignment_expression "uVar7 = *param_4" (identifier "uVar7") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "uVar28 = param_4[1];" (assignment_expression "uVar28 = param_4[1]" (identifier "uVar28") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar10 = *(uint *)(param_1 + 0x110);" (assignment_expression "uVar10 = *(uint *)(param_1 + 0x110)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(param_1 + 0x110)" (* "*") (cast_expression "(uint *)(param_1 + 0x110)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) (; ";")) (expression_statement "uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));" (assignment_expression "uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c))" (identifier "uVar20") (= "=") (call_expression "(uint)(uVar7 < *(uint *)(param_1 + 0x10c))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar7 < *(uint *)(param_1 + 0x10c))" (( "(") (binary_expression "uVar7 < *(uint *)(param_1 + 0x10c)" (identifier "uVar7") (< "<") (pointer_expression "*(uint *)(param_1 + 0x10c)" (* "*") (cast_expression "(uint *)(param_1 + 0x10c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10c)" (( "(") (binary_expression "param_1 + 0x10c" (identifier "param_1") (+ "+") (number_literal "0x10c")) () ")"))))) () ")")))) (; ";")) (if_statement "if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }" (if "if") (parenthesized_expression "((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0))" (( "(") (binary_expression "(((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||\n             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)" (parenthesized_expression "(((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104)))))" (( "(") (binary_expression "((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0) &&\n              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))" (parenthesized_expression "((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0)" (( "(") (binary_expression "(SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==\n                (int)((uVar28 - uVar10) - uVar20) < 0" (parenthesized_expression "(SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20))" (( "(") (binary_expression "SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)" (call_expression "SBORROW4(uVar28,uVar10)" (identifier "SBORROW4") (argument_list "(uVar28,uVar10)" (( "(") (identifier "uVar28") (, ",") (identifier "uVar10") () ")"))) (!= "!=") (call_expression "SBORROW4(uVar28 - uVar10,uVar20)" (identifier "SBORROW4") (argument_list "(uVar28 - uVar10,uVar20)" (( "(") (binary_expression "uVar28 - uVar10" (identifier "uVar28") (- "-") (identifier "uVar10")) (, ",") (identifier "uVar20") () ")")))) () ")")) (== "==") (binary_expression "(int)((uVar28 - uVar10) - uVar20) < 0" (cast_expression "(int)((uVar28 - uVar10) - uVar20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((uVar28 - uVar10) - uVar20)" (( "(") (binary_expression "(uVar28 - uVar10) - uVar20" (parenthesized_expression "(uVar28 - uVar10)" (( "(") (binary_expression "uVar28 - uVar10" (identifier "uVar28") (- "-") (identifier "uVar10")) () ")")) (- "-") (identifier "uVar20")) () ")"))) (< "<") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))" (( "(") (parenthesized_expression "(((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104)))" (( "(") (binary_expression "((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&\n               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))" (parenthesized_expression "((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114)))" (( "(") (binary_expression "(uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))" (parenthesized_expression "(uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0))" (( "(") (binary_expression "uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||\n                 (*(int *)(param_1 + 0x118) != 0)" (binary_expression "uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7" (binary_expression "uVar10 != uVar28" (identifier "uVar10") (!= "!=") (identifier "uVar28")) (|| "||") (binary_expression "*(uint *)(param_1 + 0x10c) != uVar7" (pointer_expression "*(uint *)(param_1 + 0x10c)" (* "*") (cast_expression "(uint *)(param_1 + 0x10c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10c)" (( "(") (binary_expression "param_1 + 0x10c" (identifier "param_1") (+ "+") (number_literal "0x10c")) () ")")))) (!= "!=") (identifier "uVar7"))) (|| "||") (parenthesized_expression "(*(int *)(param_1 + 0x118) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x118) != 0" (pointer_expression "*(int *)(param_1 + 0x118)" (* "*") (cast_expression "(int *)(param_1 + 0x118)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_124 == *(int *)(param_1 + 0x114))" (( "(") (binary_expression "local_124 == *(int *)(param_1 + 0x114)" (identifier "local_124") (== "==") (pointer_expression "*(int *)(param_1 + 0x114)" (* "*") (cast_expression "(int *)(param_1 + 0x114)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x114)" (( "(") (binary_expression "param_1 + 0x114" (identifier "param_1") (+ "+") (number_literal "0x114")) () ")"))))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))" (( "(") (binary_expression "*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104)" (pointer_expression "*(int *)(param_1 + 0x108)" (* "*") (cast_expression "(int *)(param_1 + 0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (<= "<=") (pointer_expression "*(int *)(param_1 + 0x104)" (* "*") (cast_expression "(int *)(param_1 + 0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x104)" (( "(") (binary_expression "param_1 + 0x104" (identifier "param_1") (+ "+") (number_literal "0x104")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)" (( "(") (comma_expression "piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0" (assignment_expression "piVar6 = (int *)FUN_0013aff0()" (identifier "piVar6") (= "=") (cast_expression "(int *)FUN_0013aff0()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0013aff0()" (identifier "FUN_0013aff0") (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "piVar6 == (int *)0x0" (identifier "piVar6") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n            *(int *)(param_1 + 0x114) = local_124;\n            iVar3 = *(int *)(param_1 + 0x18);\n            *(uint *)(param_1 + 0x110) = uVar28;\n            *(uint *)(param_1 + 0x10c) = uVar7;\n            *(undefined4 *)(param_1 + 0x118) = 0;\n            iVar4 = 0;\n            piVar6 = local_98;\n            if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }\n          }" ({ "{") (expression_statement "*(int *)(param_1 + 0x114) = local_124;" (assignment_expression "*(int *)(param_1 + 0x114) = local_124" (pointer_expression "*(int *)(param_1 + 0x114)" (* "*") (cast_expression "(int *)(param_1 + 0x114)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x114)" (( "(") (binary_expression "param_1 + 0x114" (identifier "param_1") (+ "+") (number_literal "0x114")) () ")")))) (= "=") (identifier "local_124")) (; ";")) (expression_statement "iVar3 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x18)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x110) = uVar28;" (assignment_expression "*(uint *)(param_1 + 0x110) = uVar28" (pointer_expression "*(uint *)(param_1 + 0x110)" (* "*") (cast_expression "(uint *)(param_1 + 0x110)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (= "=") (identifier "uVar28")) (; ";")) (expression_statement "*(uint *)(param_1 + 0x10c) = uVar7;" (assignment_expression "*(uint *)(param_1 + 0x10c) = uVar7" (pointer_expression "*(uint *)(param_1 + 0x10c)" (* "*") (cast_expression "(uint *)(param_1 + 0x10c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10c)" (( "(") (binary_expression "param_1 + 0x10c" (identifier "param_1") (+ "+") (number_literal "0x10c")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x118) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x118) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6 = local_98;" (assignment_expression "piVar6 = local_98" (identifier "piVar6") (= "=") (identifier "local_98")) (; ";")) (if_statement "if (0 < iVar3) {\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }" (if "if") (parenthesized_expression "(0 < iVar3)" (( "(") (binary_expression "0 < iVar3" (number_literal "0") (< "<") (identifier "iVar3")) () ")")) (compound_statement "{\n              do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);\n            }" ({ "{") (do_statement "do {\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              } while (iVar18 <= iVar3);" (do "do") (compound_statement "{\n                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }\n                iVar18 = iVar4 + 2;\n                iVar4 = iVar4 + 1;\n                piVar6 = local_98;\n              }" ({ "{") (if_statement "if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 0x20) + iVar4)" (* "*") (cast_expression "(char *)(*(int *)(param_1 + 0x20) + iVar4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x20) + iVar4)" (( "(") (binary_expression "*(int *)(param_1 + 0x20) + iVar4" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (identifier "iVar4")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  FUN_0007f6d0();\n                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));\n                  if (piVar6 != (int *)0x0) break;\n                  iVar3 = FUN_0007f360();\n                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);\n                  *piVar6 = *piVar6 + iVar3;\n                  iVar3 = *(int *)(param_1 + 0x18);\n                }" ({ "{") (expression_statement "FUN_0007f6d0();" (call_expression "FUN_0007f6d0()" (identifier "FUN_0007f6d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));" (assignment_expression "piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4))" (identifier "piVar6") (= "=") (cast_expression "(int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4))" (identifier "FUN_001223f0") (argument_list "(iVar4,(void *)((int)local_12c + iVar4 * 4))" (( "(") (identifier "iVar4") (, ",") (cast_expression "(void *)((int)local_12c + iVar4 * 4)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_12c + iVar4 * 4)" (( "(") (binary_expression "(int)local_12c + iVar4 * 4" (cast_expression "(int)local_12c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_12c")) (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4"))) () ")"))) () ")"))))) (; ";")) (if_statement "if (piVar6 != (int *)0x0) break;" (if "if") (parenthesized_expression "(piVar6 != (int *)0x0)" (( "(") (binary_expression "piVar6 != (int *)0x0" (identifier "piVar6") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = FUN_0007f360();" (assignment_expression "iVar3 = FUN_0007f360()" (identifier "iVar3") (= "=") (call_expression "FUN_0007f360()" (identifier "FUN_0007f360") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);" (assignment_expression "piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4)" (identifier "piVar6") (= "=") (cast_expression "(int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_12c + *(int *)(param_1 + 0x18) * 4)" (( "(") (binary_expression "(int)local_12c + *(int *)(param_1 + 0x18) * 4" (cast_expression "(int)local_12c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_12c")) (+ "+") (binary_expression "*(int *)(param_1 + 0x18) * 4" (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*piVar6 = *piVar6 + iVar3;" (assignment_expression "*piVar6 = *piVar6 + iVar3" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (binary_expression "*piVar6 + iVar3" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (+ "+") (identifier "iVar3"))) (; ";")) (expression_statement "iVar3 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x18)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar18 = iVar4 + 2;" (assignment_expression "iVar18 = iVar4 + 2" (identifier "iVar18") (= "=") (binary_expression "iVar4 + 2" (identifier "iVar4") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar6 = local_98;" (assignment_expression "piVar6 = local_98" (identifier "piVar6") (= "=") (identifier "local_98")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 <= iVar3)" (( "(") (binary_expression "iVar18 <= iVar3" (identifier "iVar18") (<= "<=") (identifier "iVar3")) () ")")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}")))) (expression_statement "local_98 = piVar6;" (assignment_expression "local_98 = piVar6" (identifier "local_98") (= "=") (identifier "piVar6")) (; ";")) (if_statement "if (*(char *)(param_1 + 0xea) != '\0') {\n        FUN_00111bd0();\n      }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0xea) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0xea) != '\0'" (pointer_expression "*(char *)(param_1 + 0xea)" (* "*") (cast_expression "(char *)(param_1 + 0xea)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xea)" (( "(") (binary_expression "param_1 + 0xea" (identifier "param_1") (+ "+") (number_literal "0xea")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        FUN_00111bd0();\n      }" ({ "{") (expression_statement "FUN_00111bd0();" (call_expression "FUN_00111bd0()" (identifier "FUN_00111bd0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_94 = 1;" (assignment_expression "local_94 = 1" (identifier "local_94") (= "=") (number_literal "1")) (; ";")) (} "}")))))) (if_statement "if (*(char *)(param_1 + 0xe8) != '\0') {\n      FUN_00111db0(__s,local_94);\n    }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0xe8) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0xe8) != '\0'" (pointer_expression "*(char *)(param_1 + 0xe8)" (* "*") (cast_expression "(char *)(param_1 + 0xe8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe8)" (( "(") (binary_expression "param_1 + 0xe8" (identifier "param_1") (+ "+") (number_literal "0xe8")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_00111db0(__s,local_94);\n    }" ({ "{") (expression_statement "FUN_00111db0(__s,local_94);" (call_expression "FUN_00111db0(__s,local_94)" (identifier "FUN_00111db0") (argument_list "(__s,local_94)" (( "(") (identifier "__s") (, ",") (identifier "local_94") () ")"))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0013bb29:\n  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  }\n  else {\n    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }\n    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);\n    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n  }" (statement_identifier "LAB_0013bb29") (: ":") (if_statement "if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  }\n  else {\n    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }\n    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);\n    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x7fb7a) == 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x7fb7a) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x7fb7a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x7fb7a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fb7a)" (( "(") (binary_expression "unaff_EBP + 0x7fb7a" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fb7a")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    uVar5 = *(undefined4 *)(param_1 + 0xf8);\n  }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(__s);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(__s)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbaa)" (( "(") (binary_expression "unaff_EBP + 0x7fbaa" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbaa")) () ")"))))) () ")")) (argument_list "(__s)" (( "(") (identifier "__s") () ")"))) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }\n    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);\n    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n  }" (else "else") (compound_statement "{\n    if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }\n    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);\n    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;\n    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;\n    (**(code **)(unaff_EBP + 0x7fbaa))(__s);\n    if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n  }" ({ "{") (if_statement "if (*(int *)(unaff_EBP + 0x8155e) != 0) {\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) != 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x8155e) != 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));\n    }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbd6))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbd6)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbd6)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbd6)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbd6)" (( "(") (binary_expression "unaff_EBP + 0x7fbd6" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbd6")) () ")"))))) () ")")) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" (( "(") (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);" (assignment_expression "iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(unaff_EBP + 0x7fbb2))(__s)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbb2))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbb2)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbb2)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbb2)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbb2)" (( "(") (binary_expression "unaff_EBP + 0x7fbb2" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbb2")) () ")"))))) () ")")) (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (expression_statement "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;" (assignment_expression "*(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8159e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8159e)" (( "(") (binary_expression "unaff_EBP + 0x8159e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8159e")) () ")")))) (= "=") (binary_expression "*(int *)(unaff_EBP + 0x8159e) + -1" (pointer_expression "*(int *)(unaff_EBP + 0x8159e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8159e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8159e)" (( "(") (binary_expression "unaff_EBP + 0x8159e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8159e")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;" (assignment_expression "*(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8157a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8157a)" (( "(") (binary_expression "unaff_EBP + 0x8157a" (identifier "unaff_EBP") (+ "+") (number_literal "0x8157a")) () ")")))) (= "=") (binary_expression "*(int *)(unaff_EBP + 0x8157a) - iVar3" (pointer_expression "*(int *)(unaff_EBP + 0x8157a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8157a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8157a)" (( "(") (binary_expression "unaff_EBP + 0x8157a" (identifier "unaff_EBP") (+ "+") (number_literal "0x8157a")) () ")")))) (- "-") (identifier "iVar3"))) (; ";")) (expression_statement "(**(code **)(unaff_EBP + 0x7fbaa))(__s);" (call_expression "(**(code **)(unaff_EBP + 0x7fbaa))(__s)" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbaa))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbaa)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbaa)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbaa)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbaa)" (( "(") (binary_expression "unaff_EBP + 0x7fbaa" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbaa")) () ")"))))) () ")")) (argument_list "(__s)" (( "(") (identifier "__s") () ")"))) (; ";")) (if_statement "if (*(int *)(unaff_EBP + 0x8155e) == 0) {\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }\n    else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x8155e) == 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x8155e) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }" ({ "{") (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }" (else "else") (compound_statement "{\n      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));\n      uVar5 = *(undefined4 *)(param_1 + 0xf8);\n    }" ({ "{") (expression_statement "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));" (call_expression "(**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e))" (parenthesized_expression "(**(code **)(unaff_EBP + 0x7fbde))" (( "(") (pointer_expression "**(code **)(unaff_EBP + 0x7fbde)" (* "*") (pointer_expression "*(code **)(unaff_EBP + 0x7fbde)" (* "*") (cast_expression "(code **)(unaff_EBP + 0x7fbde)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x7fbde)" (( "(") (binary_expression "unaff_EBP + 0x7fbde" (identifier "unaff_EBP") (+ "+") (number_literal "0x7fbde")) () ")"))))) () ")")) (argument_list "(*(int *)(unaff_EBP + 0x8155e))" (( "(") (pointer_expression "*(int *)(unaff_EBP + 0x8155e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x8155e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x8155e)" (( "(") (binary_expression "unaff_EBP + 0x8155e" (identifier "unaff_EBP") (+ "+") (number_literal "0x8155e")) () ")")))) () ")"))) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (} "}")))) (} "}"))))) (goto_statement "goto LAB_0013ba95;" (goto "goto") (statement_identifier "LAB_0013ba95") (; ";")) (labeled_statement "LAB_0013d4fe:\n  FUN_000c0450(local_8c);" (statement_identifier "LAB_0013d4fe") (: ":") (expression_statement "FUN_000c0450(local_8c);" (call_expression "FUN_000c0450(local_8c)" (identifier "FUN_000c0450") (argument_list "(local_8c)" (( "(") (identifier "local_8c") () ")"))) (; ";"))) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (expression_statement "local_f0 = piVar6;" (assignment_expression "local_f0 = piVar6" (identifier "local_f0") (= "=") (identifier "piVar6")) (; ";")) (goto_statement "goto LAB_0013ba71;" (goto "goto") (statement_identifier "LAB_0013ba71") (; ";")) (labeled_statement "LAB_0013d234:\n  iVar4 = FUN_000e7e00(uVar5);" (statement_identifier "LAB_0013d234") (: ":") (expression_statement "iVar4 = FUN_000e7e00(uVar5);" (assignment_expression "iVar4 = FUN_000e7e00(uVar5)" (identifier "iVar4") (= "=") (call_expression "FUN_000e7e00(uVar5)" (identifier "FUN_000e7e00") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")")))) (; ";"))) (if_statement "if (iVar4 == 100) {\n    FUN_0004c5d0();\n    uVar27 = FUN_00045540();\n    iVar18 = (int)((ulonglong)uVar27 >> 0x20);\n    uVar7 = (uint)uVar27;\n    FUN_0004c6c0();\n    iVar4 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x2c) == 0) {\n      uVar28 = 0;\n      iVar9 = 0;\n    }\n    else {\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }\n    uVar10 = uVar7 * 9 + uVar28;\n    iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28);\n    uVar7 = uVar10 * 9;\n    iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8);\n    uVar5 = local_8c;\n    if (0 < iVar4) {\n      local_114 = 0;\n      iVar9 = *(int *)(param_1 + 0x20);\n      do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);\n    }\n    goto LAB_0013d234;\n  }" (if "if") (parenthesized_expression "(iVar4 == 100)" (( "(") (binary_expression "iVar4 == 100" (identifier "iVar4") (== "==") (number_literal "100")) () ")")) (compound_statement "{\n    FUN_0004c5d0();\n    uVar27 = FUN_00045540();\n    iVar18 = (int)((ulonglong)uVar27 >> 0x20);\n    uVar7 = (uint)uVar27;\n    FUN_0004c6c0();\n    iVar4 = *(int *)(param_1 + 0x18);\n    if (*(int *)(param_1 + 0x2c) == 0) {\n      uVar28 = 0;\n      iVar9 = 0;\n    }\n    else {\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }\n    uVar10 = uVar7 * 9 + uVar28;\n    iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28);\n    uVar7 = uVar10 * 9;\n    iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8);\n    uVar5 = local_8c;\n    if (0 < iVar4) {\n      local_114 = 0;\n      iVar9 = *(int *)(param_1 + 0x20);\n      do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);\n    }\n    goto LAB_0013d234;\n  }" ({ "{") (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" (identifier "FUN_0004c5d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar27 = FUN_00045540();" (assignment_expression "uVar27 = FUN_00045540()" (identifier "uVar27") (= "=") (call_expression "FUN_00045540()" (identifier "FUN_00045540") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar18 = (int)((ulonglong)uVar27 >> 0x20);" (assignment_expression "iVar18 = (int)((ulonglong)uVar27 >> 0x20)" (identifier "iVar18") (= "=") (cast_expression "(int)((ulonglong)uVar27 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar27 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar27 >> 0x20" (cast_expression "(ulonglong)uVar27" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar7 = (uint)uVar27;" (assignment_expression "uVar7 = (uint)uVar27" (identifier "uVar7") (= "=") (cast_expression "(uint)uVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar27"))) (; ";")) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" (identifier "FUN_0004c6c0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar4 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x18)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x2c) == 0) {\n      uVar28 = 0;\n      iVar9 = 0;\n    }\n    else {\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x2c) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x2c) == 0" (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar28 = 0;\n      iVar9 = 0;\n    }" ({ "{") (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" (identifier "uVar28") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }" (else "else") (compound_statement "{\n      FUN_0004c5d0();\n      uVar28 = FUN_00045540();\n      FUN_0004c6c0();\n      iVar9 = (int)uVar28 >> 0x1f;\n      iVar4 = *(int *)(param_1 + 0x18);\n    }" ({ "{") (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" (identifier "FUN_0004c5d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar28 = FUN_00045540();" (assignment_expression "uVar28 = FUN_00045540()" (identifier "uVar28") (= "=") (call_expression "FUN_00045540()" (identifier "FUN_00045540") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" (identifier "FUN_0004c6c0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar9 = (int)uVar28 >> 0x1f;" (assignment_expression "iVar9 = (int)uVar28 >> 0x1f" (identifier "iVar9") (= "=") (binary_expression "(int)uVar28 >> 0x1f" (cast_expression "(int)uVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar28")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "iVar4 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x18)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}")))) (expression_statement "uVar10 = uVar7 * 9 + uVar28;" (assignment_expression "uVar10 = uVar7 * 9 + uVar28" (identifier "uVar10") (= "=") (binary_expression "uVar7 * 9 + uVar28" (binary_expression "uVar7 * 9" (identifier "uVar7") (* "*") (number_literal "9")) (+ "+") (identifier "uVar28"))) (; ";")) (expression_statement "iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28);" (assignment_expression "iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28)" (identifier "iVar18") (= "=") (binary_expression "(iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +\n             (uint)CARRY4(uVar7 * 9,uVar28)" (binary_expression "(iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9" (binary_expression "(iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7)" (binary_expression "(iVar18 << 3 | uVar7 >> 0x1d) + iVar18" (parenthesized_expression "(iVar18 << 3 | uVar7 >> 0x1d)" (( "(") (binary_expression "iVar18 << 3 | uVar7 >> 0x1d" (binary_expression "iVar18 << 3" (identifier "iVar18") (<< "<<") (number_literal "3")) (| "|") (binary_expression "uVar7 >> 0x1d" (identifier "uVar7") (>> ">>") (number_literal "0x1d"))) () ")")) (+ "+") (identifier "iVar18")) (+ "+") (cast_expression "(uint)CARRY4(uVar7 * 8,uVar7)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar7 * 8,uVar7)" (identifier "CARRY4") (argument_list "(uVar7 * 8,uVar7)" (( "(") (binary_expression "uVar7 * 8" (identifier "uVar7") (* "*") (number_literal "8")) (, ",") (identifier "uVar7") () ")"))))) (+ "+") (identifier "iVar9")) (+ "+") (cast_expression "(uint)CARRY4(uVar7 * 9,uVar28)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar7 * 9,uVar28)" (identifier "CARRY4") (argument_list "(uVar7 * 9,uVar28)" (( "(") (binary_expression "uVar7 * 9" (identifier "uVar7") (* "*") (number_literal "9")) (, ",") (identifier "uVar28") () ")")))))) (; ";")) (expression_statement "uVar7 = uVar10 * 9;" (assignment_expression "uVar7 = uVar10 * 9" (identifier "uVar7") (= "=") (binary_expression "uVar10 * 9" (identifier "uVar10") (* "*") (number_literal "9"))) (; ";")) (expression_statement "iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8);" (assignment_expression "iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8)" (identifier "iVar18") (= "=") (binary_expression "iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8)" (binary_expression "iVar18 + (iVar18 * 8 | uVar10 >> 0x1d)" (identifier "iVar18") (+ "+") (parenthesized_expression "(iVar18 * 8 | uVar10 >> 0x1d)" (( "(") (binary_expression "iVar18 * 8 | uVar10 >> 0x1d" (binary_expression "iVar18 * 8" (identifier "iVar18") (* "*") (number_literal "8")) (| "|") (binary_expression "uVar10 >> 0x1d" (identifier "uVar10") (>> ">>") (number_literal "0x1d"))) () ")"))) (+ "+") (cast_expression "(uint)CARRY4(uVar10,uVar10 * 8)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar10,uVar10 * 8)" (identifier "CARRY4") (argument_list "(uVar10,uVar10 * 8)" (( "(") (identifier "uVar10") (, ",") (binary_expression "uVar10 * 8" (identifier "uVar10") (* "*") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "uVar5 = local_8c;" (assignment_expression "uVar5 = local_8c" (identifier "uVar5") (= "=") (identifier "local_8c")) (; ";")) (if_statement "if (0 < iVar4) {\n      local_114 = 0;\n      iVar9 = *(int *)(param_1 + 0x20);\n      do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);\n    }" (if "if") (parenthesized_expression "(0 < iVar4)" (( "(") (binary_expression "0 < iVar4" (number_literal "0") (< "<") (identifier "iVar4")) () ")")) (compound_statement "{\n      local_114 = 0;\n      iVar9 = *(int *)(param_1 + 0x20);\n      do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);\n    }" ({ "{") (expression_statement "local_114 = 0;" (assignment_expression "local_114 = 0" (identifier "local_114") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar9 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x20)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (do_statement "do {\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      } while ((int)local_114 < iVar4);" (do "do") (compound_statement "{\n        local_10c = local_114 + 1;\n        if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }\n        local_114 = local_10c;\n      }" ({ "{") (expression_statement "local_10c = local_114 + 1;" (assignment_expression "local_10c = local_114 + 1" (identifier "local_10c") (= "=") (binary_expression "local_114 + 1" (identifier "local_114") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(char *)(iVar9 + local_114) == '\0') {\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }" (if "if") (parenthesized_expression "(*(char *)(iVar9 + local_114) == '\0')" (( "(") (binary_expression "*(char *)(iVar9 + local_114) == '\0'" (pointer_expression "*(char *)(iVar9 + local_114)" (* "*") (cast_expression "(char *)(iVar9 + local_114)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + local_114)" (( "(") (binary_expression "iVar9 + local_114" (identifier "iVar9") (+ "+") (identifier "local_114")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          uVar28 = (uint)((ulonglong)uVar7 * 9);\n          local_dc = uVar28 + local_114;\n          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);\n          local_e4 = local_114 + uVar10 * 0x51;\n          local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);\n          while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }\n          local_10c = local_114 + 2;\n        }" ({ "{") (expression_statement "uVar28 = (uint)((ulonglong)uVar7 * 9);" (assignment_expression "uVar28 = (uint)((ulonglong)uVar7 * 9)" (identifier "uVar28") (= "=") (call_expression "(uint)((ulonglong)uVar7 * 9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar7 * 9)" (( "(") (binary_expression "(ulonglong)uVar7 * 9" (cast_expression "(ulonglong)uVar7" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar7")) (* "*") (number_literal "9")) () ")")))) (; ";")) (expression_statement "local_dc = uVar28 + local_114;" (assignment_expression "local_dc = uVar28 + local_114" (identifier "local_dc") (= "=") (binary_expression "uVar28 + local_114" (identifier "uVar28") (+ "+") (identifier "local_114"))) (; ";")) (expression_statement "local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114);" (assignment_expression "local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114)" (identifier "local_d8") (= "=") (binary_expression "(int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +\n                     (uint)CARRY4(uVar28,local_114)" (binary_expression "(int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f)" (binary_expression "(int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9" (cast_expression "(int)((ulonglong)uVar7 * 9 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar7 * 9 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar7 * 9 >> 0x20" (binary_expression "(ulonglong)uVar7 * 9" (cast_expression "(ulonglong)uVar7" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar7")) (* "*") (number_literal "9")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (binary_expression "iVar18 * 9" (identifier "iVar18") (* "*") (number_literal "9"))) (+ "+") (parenthesized_expression "((int)local_114 >> 0x1f)" (( "(") (binary_expression "(int)local_114 >> 0x1f" (cast_expression "(int)local_114" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_114")) (>> ">>") (number_literal "0x1f")) () ")"))) (+ "+") (cast_expression "(uint)CARRY4(uVar28,local_114)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar28,local_114)" (identifier "CARRY4") (argument_list "(uVar28,local_114)" (( "(") (identifier "uVar28") (, ",") (identifier "local_114") () ")")))))) (; ";")) (expression_statement "local_e4 = local_114 + uVar10 * 0x51;" (assignment_expression "local_e4 = local_114 + uVar10 * 0x51" (identifier "local_e4") (= "=") (binary_expression "local_114 + uVar10 * 0x51" (identifier "local_114") (+ "+") (binary_expression "uVar10 * 0x51" (identifier "uVar10") (* "*") (number_literal "0x51")))) (; ";")) (expression_statement "local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51);" (assignment_expression "local_e0 = ((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51)" (identifier "local_e0") (= "=") (binary_expression "((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +\n                     (uint)CARRY4(local_114,uVar10 * 0x51)" (binary_expression "((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7)" (binary_expression "((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18" (binary_expression "((int)local_114 >> 0x1f) +\n                     (iVar18 * 8 | uVar7 >> 0x1d)" (parenthesized_expression "((int)local_114 >> 0x1f)" (( "(") (binary_expression "(int)local_114 >> 0x1f" (cast_expression "(int)local_114" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_114")) (>> ">>") (number_literal "0x1f")) () ")")) (+ "+") (parenthesized_expression "(iVar18 * 8 | uVar7 >> 0x1d)" (( "(") (binary_expression "iVar18 * 8 | uVar7 >> 0x1d" (binary_expression "iVar18 * 8" (identifier "iVar18") (* "*") (number_literal "8")) (| "|") (binary_expression "uVar7 >> 0x1d" (identifier "uVar7") (>> ">>") (number_literal "0x1d"))) () ")"))) (+ "+") (identifier "iVar18")) (+ "+") (cast_expression "(uint)CARRY4(uVar10 * 0x48,uVar7)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar10 * 0x48,uVar7)" (identifier "CARRY4") (argument_list "(uVar10 * 0x48,uVar7)" (( "(") (binary_expression "uVar10 * 0x48" (identifier "uVar10") (* "*") (number_literal "0x48")) (, ",") (identifier "uVar7") () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(local_114,uVar10 * 0x51)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(local_114,uVar10 * 0x51)" (identifier "CARRY4") (argument_list "(local_114,uVar10 * 0x51)" (( "(") (identifier "local_114") (, ",") (binary_expression "uVar10 * 0x51" (identifier "uVar10") (* "*") (number_literal "0x51")) () ")")))))) (; ";")) (while_statement "while( true ) {\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            FUN_0004c5d0();\n            FUN_0007f6d0();\n            FUN_0004c6c0();\n            FUN_0004c5d0();\n            uVar5 = FUN_0007f360();\n            FUN_0004c6c0();\n            local_88 = 0;\n            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);\n            if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }\n            if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }\n            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;\n            iVar4 = *(int *)(param_1 + 0x18);\n            uVar5 = local_8c;\n            if (iVar4 <= (int)local_10c) goto LAB_0013d234;\n            bVar23 = 0xfffffffe < local_dc;\n            local_dc = local_dc + 1;\n            local_d8 = local_d8 + (uint)bVar23;\n            iVar9 = *(int *)(param_1 + 0x20);\n            uVar28 = local_10c;\n            bVar23 = 0xfffffffe < local_e4;\n            local_e4 = local_e4 + 1;\n            local_e0 = local_e0 + (uint)bVar23;\n            if (*(char *)(iVar9 + local_10c) != '\0') break;\n            local_10c = local_10c + 1;\n            local_114 = uVar28;\n          }" ({ "{") (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" (identifier "FUN_0004c5d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0007f6d0();" (call_expression "FUN_0007f6d0()" (identifier "FUN_0007f6d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" (identifier "FUN_0004c6c0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0004c5d0();" (call_expression "FUN_0004c5d0()" (identifier "FUN_0004c5d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar5 = FUN_0007f360();" (assignment_expression "uVar5 = FUN_0007f360()" (identifier "uVar5") (= "=") (call_expression "FUN_0007f360()" (identifier "FUN_0007f360") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_0004c6c0();" (call_expression "FUN_0004c6c0()" (identifier "FUN_0004c6c0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" (identifier "local_88") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);" (assignment_expression "piVar6 = (int *)FUN_0003ed50(uVar5,&local_88)" (identifier "piVar6") (= "=") (cast_expression "(int *)FUN_0003ed50(uVar5,&local_88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0003ed50(uVar5,&local_88)" (identifier "FUN_0003ed50") (argument_list "(uVar5,&local_88)" (( "(") (identifier "uVar5") (, ",") (pointer_expression "&local_88" (& "&") (identifier "local_88")) () ")"))))) (; ";")) (if_statement "if (piVar6 == (int *)0x0) {\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }" (if "if") (parenthesized_expression "(piVar6 == (int *)0x0)" (( "(") (binary_expression "piVar6 == (int *)0x0" (identifier "piVar6") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }\n            }" ({ "{") (while_statement "while( true ) {\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                local_7c[0] = 0;\n                local_7c[2] = 0;\n                local_68 = (int *)0x0;\n                local_58 = (int *)0x0;\n                piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);\n                if (piVar6 != (int *)0x0) break;\n                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;\n                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);\n                if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }\n                local_ec = local_ec ^ (uint)puVar14;\n                local_e8 = local_e8 ^ uVar28;\n                if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }\n              }" ({ "{") (expression_statement "local_7c[0] = 0;" (assignment_expression "local_7c[0] = 0" (subscript_expression "local_7c[0]" (identifier "local_7c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_7c[2] = 0;" (assignment_expression "local_7c[2] = 0" (subscript_expression "local_7c[2]" (identifier "local_7c") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_68 = (int *)0x0;" (assignment_expression "local_68 = (int *)0x0" (identifier "local_68") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_58 = (int *)0x0;" (assignment_expression "local_58 = (int *)0x0" (identifier "local_58") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58);" (assignment_expression "piVar6 = (int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58)" (identifier "piVar6") (= "=") (cast_expression "(int *)(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar3 + 0x14))\n                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58)" (parenthesized_expression "(**(code **)(iVar3 + 0x14))" (( "(") (pointer_expression "**(code **)(iVar3 + 0x14)" (* "*") (pointer_expression "*(code **)(iVar3 + 0x14)" (* "*") (cast_expression "(code **)(iVar3 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0x14)" (( "(") (binary_expression "iVar3 + 0x14" (identifier "iVar3") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (argument_list "(local_88,&local_84,local_7c,local_7c + 2,&local_68,\n                                           &local_58)" (( "(") (identifier "local_88") (, ",") (pointer_expression "&local_84" (& "&") (identifier "local_84")) (, ",") (identifier "local_7c") (, ",") (binary_expression "local_7c + 2" (identifier "local_7c") (+ "+") (number_literal "2")) (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))))) (; ";")) (if_statement "if (piVar6 != (int *)0x0) break;" (if "if") (parenthesized_expression "(piVar6 != (int *)0x0)" (( "(") (binary_expression "piVar6 != (int *)0x0" (identifier "piVar6") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;" (assignment_expression "puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8" (identifier "puVar14") (= "=") (binary_expression "(undefined1 *)((int)local_58 + local_e4) + local_e4 * 8" (cast_expression "(undefined1 *)((int)local_58 + local_e4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_58 + local_e4)" (( "(") (binary_expression "(int)local_58 + local_e4" (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58")) (+ "+") (identifier "local_e4")) () ")"))) (+ "+") (binary_expression "local_e4 * 8" (identifier "local_e4") (* "*") (number_literal "8")))) (; ";")) (expression_statement "uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);" (assignment_expression "uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8)" (identifier "uVar28") (= "=") (binary_expression "((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d) +\n                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8)" (binary_expression "((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)\n                         + (local_e0 << 3 | local_e4 >> 0x1d)" (binary_expression "((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)" (binary_expression "((int)local_58 >> 0x1f) + local_e0" (parenthesized_expression "((int)local_58 >> 0x1f)" (( "(") (binary_expression "(int)local_58 >> 0x1f" (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58")) (>> ">>") (number_literal "0x1f")) () ")")) (+ "+") (identifier "local_e0")) (+ "+") (cast_expression "(uint)CARRY4((uint)local_58,local_e4)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)local_58,local_e4)" (identifier "CARRY4") (argument_list "((uint)local_58,local_e4)" (( "(") (cast_expression "(uint)local_58" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_58")) (, ",") (identifier "local_e4") () ")"))))) (+ "+") (parenthesized_expression "(local_e0 << 3 | local_e4 >> 0x1d)" (( "(") (binary_expression "local_e0 << 3 | local_e4 >> 0x1d" (binary_expression "local_e0 << 3" (identifier "local_e0") (<< "<<") (number_literal "3")) (| "|") (binary_expression "local_e4 >> 0x1d" (identifier "local_e4") (>> ">>") (number_literal "0x1d"))) () ")"))) (+ "+") (cast_expression "(uint)CARRY4((int)local_58 + local_e4,local_e4 * 8)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((int)local_58 + local_e4,local_e4 * 8)" (identifier "CARRY4") (argument_list "((int)local_58 + local_e4,local_e4 * 8)" (( "(") (binary_expression "(int)local_58 + local_e4" (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58")) (+ "+") (identifier "local_e4")) (, ",") (binary_expression "local_e4 * 8" (identifier "local_e4") (* "*") (number_literal "8")) () ")")))))) (; ";")) (if_statement "if (0 < (int)local_7c[0]) {\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }" (if "if") (parenthesized_expression "(0 < (int)local_7c[0])" (( "(") (binary_expression "0 < (int)local_7c[0]" (number_literal "0") (< "<") (cast_expression "(int)local_7c[0]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_7c[0]" (identifier "local_7c") ([ "[") (number_literal "0") (] "]")))) () ")")) (compound_statement "{\n                  pcVar15 = local_84;\n                  do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);\n                }" ({ "{") (expression_statement "pcVar15 = local_84;" (assignment_expression "pcVar15 = local_84" (identifier "pcVar15") (= "=") (identifier "local_84")) (; ";")) (do_statement "do {\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  } while (local_84 + local_7c[0] != pcVar15);" (do "do") (compound_statement "{\n                    uVar11 = (uint)*pcVar15;\n                    uVar12 = (int)puVar14 * 8;\n                    uVar20 = (uint)puVar14 >> 0x1d;\n                    uVar13 = uVar12 + uVar11;\n                    bVar23 = CARRY4((uint)puVar14,uVar13);\n                    puVar14 = puVar14 + uVar13;\n                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;\n                    pcVar15 = pcVar15 + 1;\n                  }" ({ "{") (expression_statement "uVar11 = (uint)*pcVar15;" (assignment_expression "uVar11 = (uint)*pcVar15" (identifier "uVar11") (= "=") (binary_expression "(uint)*pcVar15" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pcVar15"))) (; ";")) (expression_statement "uVar12 = (int)puVar14 * 8;" (assignment_expression "uVar12 = (int)puVar14 * 8" (identifier "uVar12") (= "=") (binary_expression "(int)puVar14 * 8" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (* "*") (number_literal "8"))) (; ";")) (expression_statement "uVar20 = (uint)puVar14 >> 0x1d;" (assignment_expression "uVar20 = (uint)puVar14 >> 0x1d" (identifier "uVar20") (= "=") (binary_expression "(uint)puVar14 >> 0x1d" (cast_expression "(uint)puVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar14")) (>> ">>") (number_literal "0x1d"))) (; ";")) (expression_statement "uVar13 = uVar12 + uVar11;" (assignment_expression "uVar13 = uVar12 + uVar11" (identifier "uVar13") (= "=") (binary_expression "uVar12 + uVar11" (identifier "uVar12") (+ "+") (identifier "uVar11"))) (; ";")) (expression_statement "bVar23 = CARRY4((uint)puVar14,uVar13);" (assignment_expression "bVar23 = CARRY4((uint)puVar14,uVar13)" (identifier "bVar23") (= "=") (call_expression "CARRY4((uint)puVar14,uVar13)" (identifier "CARRY4") (argument_list "((uint)puVar14,uVar13)" (( "(") (cast_expression "(uint)puVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar14")) (, ",") (identifier "uVar13") () ")")))) (; ";")) (expression_statement "puVar14 = puVar14 + uVar13;" (assignment_expression "puVar14 = puVar14 + uVar13" (identifier "puVar14") (= "=") (binary_expression "puVar14 + uVar13" (identifier "puVar14") (+ "+") (identifier "uVar13"))) (; ";")) (expression_statement "uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;" (assignment_expression "uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23" (identifier "uVar28") (= "=") (binary_expression "uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23" (binary_expression "uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +\n                                      (uint)CARRY4(uVar12,uVar11)" (binary_expression "uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f)" (binary_expression "uVar28 + (uVar28 << 3 | uVar20)" (identifier "uVar28") (+ "+") (parenthesized_expression "(uVar28 << 3 | uVar20)" (( "(") (binary_expression "uVar28 << 3 | uVar20" (binary_expression "uVar28 << 3" (identifier "uVar28") (<< "<<") (number_literal "3")) (| "|") (identifier "uVar20")) () ")"))) (+ "+") (parenthesized_expression "((int)uVar11 >> 0x1f)" (( "(") (binary_expression "(int)uVar11 >> 0x1f" (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (>> ">>") (number_literal "0x1f")) () ")"))) (+ "+") (cast_expression "(uint)CARRY4(uVar12,uVar11)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar12,uVar11)" (identifier "CARRY4") (argument_list "(uVar12,uVar11)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar11") () ")"))))) (+ "+") (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")))) (; ";")) (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + 1" (identifier "pcVar15") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_84 + local_7c[0] != pcVar15)" (( "(") (binary_expression "local_84 + local_7c[0] != pcVar15" (binary_expression "local_84 + local_7c[0]" (identifier "local_84") (+ "+") (subscript_expression "local_7c[0]" (identifier "local_7c") ([ "[") (number_literal "0") (] "]"))) (!= "!=") (identifier "pcVar15")) () ")")) (; ";")) (} "}"))) (expression_statement "local_ec = local_ec ^ (uint)puVar14;" (assignment_expression "local_ec = local_ec ^ (uint)puVar14" (identifier "local_ec") (= "=") (binary_expression "local_ec ^ (uint)puVar14" (identifier "local_ec") (^ "^") (cast_expression "(uint)puVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar14")))) (; ";")) (expression_statement "local_e8 = local_e8 ^ uVar28;" (assignment_expression "local_e8 = local_e8 ^ uVar28" (identifier "local_e8") (= "=") (binary_expression "local_e8 ^ uVar28" (identifier "local_e8") (^ "^") (identifier "uVar28"))) (; ";")) (if_statement "if (1 < *(int *)(param_1 + 0xfc)) {\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }" (if "if") (parenthesized_expression "(1 < *(int *)(param_1 + 0xfc))" (( "(") (binary_expression "1 < *(int *)(param_1 + 0xfc)" (number_literal "1") (< "<") (pointer_expression "*(int *)(param_1 + 0xfc)" (* "*") (cast_expression "(int *)(param_1 + 0xfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xfc)" (( "(") (binary_expression "param_1 + 0xfc" (identifier "param_1") (+ "+") (number_literal "0xfc")) () ")"))))) () ")")) (compound_statement "{\n                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);\n                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);\n                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);\n                  do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);\n                }" ({ "{") (expression_statement "piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);" (assignment_expression "piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18)" (identifier "piVar6") (= "=") (cast_expression "(int *)(*(int *)(param_1 + 0x100) + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x100) + 0x18)" (( "(") (binary_expression "*(int *)(param_1 + 0x100) + 0x18" (pointer_expression "*(int *)(param_1 + 0x100)" (* "*") (cast_expression "(int *)(param_1 + 0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);" (assignment_expression "local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8)" (identifier "local_12c") (= "=") (cast_expression "(int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((undefined1 *)((int)local_58 + local_dc) + local_dc * 8)" (( "(") (binary_expression "(undefined1 *)((int)local_58 + local_dc) + local_dc * 8" (cast_expression "(undefined1 *)((int)local_58 + local_dc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_58 + local_dc)" (( "(") (binary_expression "(int)local_58 + local_dc" (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58")) (+ "+") (identifier "local_dc")) () ")"))) (+ "+") (binary_expression "local_dc * 8" (identifier "local_dc") (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);" (assignment_expression "local_128 = ((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8)" (identifier "local_128") (= "=") (binary_expression "((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d) +\n                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8)" (binary_expression "((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc) +\n                              (local_d8 << 3 | local_dc >> 0x1d)" (binary_expression "((int)local_58 >> 0x1f) + local_d8 +\n                              (uint)CARRY4((uint)local_58,local_dc)" (binary_expression "((int)local_58 >> 0x1f) + local_d8" (parenthesized_expression "((int)local_58 >> 0x1f)" (( "(") (binary_expression "(int)local_58 >> 0x1f" (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58")) (>> ">>") (number_literal "0x1f")) () ")")) (+ "+") (identifier "local_d8")) (+ "+") (cast_expression "(uint)CARRY4((uint)local_58,local_dc)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)local_58,local_dc)" (identifier "CARRY4") (argument_list "((uint)local_58,local_dc)" (( "(") (cast_expression "(uint)local_58" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_58")) (, ",") (identifier "local_dc") () ")"))))) (+ "+") (parenthesized_expression "(local_d8 << 3 | local_dc >> 0x1d)" (( "(") (binary_expression "local_d8 << 3 | local_dc >> 0x1d" (binary_expression "local_d8 << 3" (identifier "local_d8") (<< "<<") (number_literal "3")) (| "|") (binary_expression "local_dc >> 0x1d" (identifier "local_dc") (>> ">>") (number_literal "0x1d"))) () ")"))) (+ "+") (cast_expression "(uint)CARRY4((int)local_58 + local_dc,local_dc * 8)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((int)local_58 + local_dc,local_dc * 8)" (identifier "CARRY4") (argument_list "((int)local_58 + local_dc,local_dc * 8)" (( "(") (binary_expression "(int)local_58 + local_dc" (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58")) (+ "+") (identifier "local_dc")) (, ",") (binary_expression "local_dc * 8" (identifier "local_dc") (* "*") (number_literal "8")) () ")")))))) (; ";")) (do_statement "do {\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6);" (do "do") (compound_statement "{\n                    iVar4 = *piVar6;\n                    if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }\n                    piVar6 = piVar6 + 6;\n                    bVar23 = (undefined1 *)0xffffffae < local_12c;\n                    local_12c = (int *)((int)local_12c + 0x51);\n                    local_128 = local_128 + (uint)bVar23;\n                  }" ({ "{") (expression_statement "iVar4 = *piVar6;" (assignment_expression "iVar4 = *piVar6" (identifier "iVar4") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (if_statement "if (iVar4 <= (int)local_7c[0]) {\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }" (if "if") (parenthesized_expression "(iVar4 <= (int)local_7c[0])" (( "(") (binary_expression "iVar4 <= (int)local_7c[0]" (identifier "iVar4") (<= "<=") (cast_expression "(int)local_7c[0]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_7c[0]" (identifier "local_7c") ([ "[") (number_literal "0") (] "]")))) () ")")) (compound_statement "{\n                      puVar14 = (undefined1 *)((int)local_12c + 0x51);\n                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);\n                      if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }\n                      local_ec = local_ec ^ (uint)puVar14;\n                      local_e8 = local_e8 ^ uVar28;\n                    }" ({ "{") (expression_statement "puVar14 = (undefined1 *)((int)local_12c + 0x51);" (assignment_expression "puVar14 = (undefined1 *)((int)local_12c + 0x51)" (identifier "puVar14") (= "=") (cast_expression "(undefined1 *)((int)local_12c + 0x51)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_12c + 0x51)" (( "(") (binary_expression "(int)local_12c + 0x51" (cast_expression "(int)local_12c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_12c")) (+ "+") (number_literal "0x51")) () ")")))) (; ";")) (expression_statement "uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);" (assignment_expression "uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c)" (identifier "uVar28") (= "=") (binary_expression "local_128 + (uint)((undefined1 *)0xffffffae < local_12c)" (identifier "local_128") (+ "+") (call_expression "(uint)((undefined1 *)0xffffffae < local_12c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((undefined1 *)0xffffffae < local_12c)" (( "(") (binary_expression "(undefined1 *)0xffffffae < local_12c" (cast_expression "(undefined1 *)0xffffffae" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffae")) (< "<") (identifier "local_12c")) () ")"))))) (; ";")) (if_statement "if (0 < iVar4) {\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }" (if "if") (parenthesized_expression "(0 < iVar4)" (( "(") (binary_expression "0 < iVar4" (number_literal "0") (< "<") (identifier "iVar4")) () ")")) (compound_statement "{\n                        pcVar15 = local_84;\n                        do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);\n                      }" ({ "{") (expression_statement "pcVar15 = local_84;" (assignment_expression "pcVar15 = local_84" (identifier "pcVar15") (= "=") (identifier "local_84")) (; ";")) (do_statement "do {\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        } while (local_84 + iVar4 != pcVar15);" (do "do") (compound_statement "{\n                          uVar13 = (uint)*pcVar15;\n                          uVar11 = (int)puVar14 * 8;\n                          uVar20 = (uint)puVar14 >> 0x1d;\n                          uVar12 = uVar11 + uVar13;\n                          bVar23 = CARRY4((uint)puVar14,uVar12);\n                          puVar14 = puVar14 + uVar12;\n                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;\n                          pcVar15 = pcVar15 + 1;\n                        }" ({ "{") (expression_statement "uVar13 = (uint)*pcVar15;" (assignment_expression "uVar13 = (uint)*pcVar15" (identifier "uVar13") (= "=") (binary_expression "(uint)*pcVar15" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pcVar15"))) (; ";")) (expression_statement "uVar11 = (int)puVar14 * 8;" (assignment_expression "uVar11 = (int)puVar14 * 8" (identifier "uVar11") (= "=") (binary_expression "(int)puVar14 * 8" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (* "*") (number_literal "8"))) (; ";")) (expression_statement "uVar20 = (uint)puVar14 >> 0x1d;" (assignment_expression "uVar20 = (uint)puVar14 >> 0x1d" (identifier "uVar20") (= "=") (binary_expression "(uint)puVar14 >> 0x1d" (cast_expression "(uint)puVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar14")) (>> ">>") (number_literal "0x1d"))) (; ";")) (expression_statement "uVar12 = uVar11 + uVar13;" (assignment_expression "uVar12 = uVar11 + uVar13" (identifier "uVar12") (= "=") (binary_expression "uVar11 + uVar13" (identifier "uVar11") (+ "+") (identifier "uVar13"))) (; ";")) (expression_statement "bVar23 = CARRY4((uint)puVar14,uVar12);" (assignment_expression "bVar23 = CARRY4((uint)puVar14,uVar12)" (identifier "bVar23") (= "=") (call_expression "CARRY4((uint)puVar14,uVar12)" (identifier "CARRY4") (argument_list "((uint)puVar14,uVar12)" (( "(") (cast_expression "(uint)puVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar14")) (, ",") (identifier "uVar12") () ")")))) (; ";")) (expression_statement "puVar14 = puVar14 + uVar12;" (assignment_expression "puVar14 = puVar14 + uVar12" (identifier "puVar14") (= "=") (binary_expression "puVar14 + uVar12" (identifier "puVar14") (+ "+") (identifier "uVar12"))) (; ";")) (expression_statement "uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;" (assignment_expression "uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23" (identifier "uVar28") (= "=") (binary_expression "uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23" (binary_expression "uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +\n                                            (uint)CARRY4(uVar11,uVar13)" (binary_expression "uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f)" (binary_expression "uVar28 + (uVar28 << 3 | uVar20)" (identifier "uVar28") (+ "+") (parenthesized_expression "(uVar28 << 3 | uVar20)" (( "(") (binary_expression "uVar28 << 3 | uVar20" (binary_expression "uVar28 << 3" (identifier "uVar28") (<< "<<") (number_literal "3")) (| "|") (identifier "uVar20")) () ")"))) (+ "+") (parenthesized_expression "((int)uVar13 >> 0x1f)" (( "(") (binary_expression "(int)uVar13 >> 0x1f" (cast_expression "(int)uVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar13")) (>> ">>") (number_literal "0x1f")) () ")"))) (+ "+") (cast_expression "(uint)CARRY4(uVar11,uVar13)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar11,uVar13)" (identifier "CARRY4") (argument_list "(uVar11,uVar13)" (( "(") (identifier "uVar11") (, ",") (identifier "uVar13") () ")"))))) (+ "+") (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")))) (; ";")) (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + 1" (identifier "pcVar15") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_84 + iVar4 != pcVar15)" (( "(") (binary_expression "local_84 + iVar4 != pcVar15" (binary_expression "local_84 + iVar4" (identifier "local_84") (+ "+") (identifier "iVar4")) (!= "!=") (identifier "pcVar15")) () ")")) (; ";")) (} "}"))) (expression_statement "local_ec = local_ec ^ (uint)puVar14;" (assignment_expression "local_ec = local_ec ^ (uint)puVar14" (identifier "local_ec") (= "=") (binary_expression "local_ec ^ (uint)puVar14" (identifier "local_ec") (^ "^") (cast_expression "(uint)puVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar14")))) (; ";")) (expression_statement "local_e8 = local_e8 ^ uVar28;" (assignment_expression "local_e8 = local_e8 ^ uVar28" (identifier "local_e8") (= "=") (binary_expression "local_e8 ^ uVar28" (identifier "local_e8") (^ "^") (identifier "uVar28"))) (; ";")) (} "}"))) (expression_statement "piVar6 = piVar6 + 6;" (assignment_expression "piVar6 = piVar6 + 6" (identifier "piVar6") (= "=") (binary_expression "piVar6 + 6" (identifier "piVar6") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "bVar23 = (undefined1 *)0xffffffae < local_12c;" (assignment_expression "bVar23 = (undefined1 *)0xffffffae < local_12c" (identifier "bVar23") (= "=") (binary_expression "(undefined1 *)0xffffffae < local_12c" (cast_expression "(undefined1 *)0xffffffae" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffae")) (< "<") (identifier "local_12c"))) (; ";")) (expression_statement "local_12c = (int *)((int)local_12c + 0x51);" (assignment_expression "local_12c = (int *)((int)local_12c + 0x51)" (identifier "local_12c") (= "=") (cast_expression "(int *)((int)local_12c + 0x51)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_12c + 0x51)" (( "(") (binary_expression "(int)local_12c + 0x51" (cast_expression "(int)local_12c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_12c")) (+ "+") (number_literal "0x51")) () ")")))) (; ";")) (expression_statement "local_128 = local_128 + (uint)bVar23;" (assignment_expression "local_128 = local_128 + (uint)bVar23" (identifier "local_128") (= "=") (binary_expression "local_128 + (uint)bVar23" (identifier "local_128") (+ "+") (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6)" (( "(") (binary_expression "(int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=\n                           piVar6" (cast_expression "(int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18)" (( "(") (binary_expression "*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18" (pointer_expression "*(int *)(param_1 + 0x100)" (* "*") (cast_expression "(int *)(param_1 + 0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (+ "+") (binary_expression "*(int *)(param_1 + 0xfc) * 0x18" (pointer_expression "*(int *)(param_1 + 0xfc)" (* "*") (cast_expression "(int *)(param_1 + 0xfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xfc)" (( "(") (binary_expression "param_1 + 0xfc" (identifier "param_1") (+ "+") (number_literal "0xfc")) () ")")))) (* "*") (number_literal "0x18"))) () ")"))) (!= "!=") (identifier "piVar6")) () ")")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (if_statement "if (local_88 != 0) {\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }" (if "if") (parenthesized_expression "(local_88 != 0)" (( "(") (binary_expression "local_88 != 0" (identifier "local_88") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              (**(code **)(iVar3 + 0x10))(local_88);\n            }" ({ "{") (expression_statement "(**(code **)(iVar3 + 0x10))(local_88);" (call_expression "(**(code **)(iVar3 + 0x10))(local_88)" (parenthesized_expression "(**(code **)(iVar3 + 0x10))" (( "(") (pointer_expression "**(code **)(iVar3 + 0x10)" (* "*") (pointer_expression "*(code **)(iVar3 + 0x10)" (* "*") (cast_expression "(code **)(iVar3 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(local_88)" (( "(") (identifier "local_88") () ")"))) (; ";")) (} "}"))) (if_statement "if (piVar6 != (int *)0x65) goto LAB_0013d4fe;" (if "if") (parenthesized_expression "(piVar6 != (int *)0x65)" (( "(") (binary_expression "piVar6 != (int *)0x65" (identifier "piVar6") (!= "!=") (cast_expression "(int *)0x65" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x65"))) () ")")) (goto_statement "goto LAB_0013d4fe;" (goto "goto") (statement_identifier "LAB_0013d4fe") (; ";"))) (expression_statement "iVar4 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x18)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "uVar5 = local_8c;" (assignment_expression "uVar5 = local_8c" (identifier "uVar5") (= "=") (identifier "local_8c")) (; ";")) (if_statement "if (iVar4 <= (int)local_10c) goto LAB_0013d234;" (if "if") (parenthesized_expression "(iVar4 <= (int)local_10c)" (( "(") (binary_expression "iVar4 <= (int)local_10c" (identifier "iVar4") (<= "<=") (cast_expression "(int)local_10c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_10c"))) () ")")) (goto_statement "goto LAB_0013d234;" (goto "goto") (statement_identifier "LAB_0013d234") (; ";"))) (expression_statement "bVar23 = 0xfffffffe < local_dc;" (assignment_expression "bVar23 = 0xfffffffe < local_dc" (identifier "bVar23") (= "=") (binary_expression "0xfffffffe < local_dc" (number_literal "0xfffffffe") (< "<") (identifier "local_dc"))) (; ";")) (expression_statement "local_dc = local_dc + 1;" (assignment_expression "local_dc = local_dc + 1" (identifier "local_dc") (= "=") (binary_expression "local_dc + 1" (identifier "local_dc") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_d8 = local_d8 + (uint)bVar23;" (assignment_expression "local_d8 = local_d8 + (uint)bVar23" (identifier "local_d8") (= "=") (binary_expression "local_d8 + (uint)bVar23" (identifier "local_d8") (+ "+") (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")))) (; ";")) (expression_statement "iVar9 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x20)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar28 = local_10c;" (assignment_expression "uVar28 = local_10c" (identifier "uVar28") (= "=") (identifier "local_10c")) (; ";")) (expression_statement "bVar23 = 0xfffffffe < local_e4;" (assignment_expression "bVar23 = 0xfffffffe < local_e4" (identifier "bVar23") (= "=") (binary_expression "0xfffffffe < local_e4" (number_literal "0xfffffffe") (< "<") (identifier "local_e4"))) (; ";")) (expression_statement "local_e4 = local_e4 + 1;" (assignment_expression "local_e4 = local_e4 + 1" (identifier "local_e4") (= "=") (binary_expression "local_e4 + 1" (identifier "local_e4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_e0 = local_e0 + (uint)bVar23;" (assignment_expression "local_e0 = local_e0 + (uint)bVar23" (identifier "local_e0") (= "=") (binary_expression "local_e0 + (uint)bVar23" (identifier "local_e0") (+ "+") (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")))) (; ";")) (if_statement "if (*(char *)(iVar9 + local_10c) != '\0') break;" (if "if") (parenthesized_expression "(*(char *)(iVar9 + local_10c) != '\0')" (( "(") (binary_expression "*(char *)(iVar9 + local_10c) != '\0'" (pointer_expression "*(char *)(iVar9 + local_10c)" (* "*") (cast_expression "(char *)(iVar9 + local_10c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + local_10c)" (( "(") (binary_expression "iVar9 + local_10c" (identifier "iVar9") (+ "+") (identifier "local_10c")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_10c = local_10c + 1;" (assignment_expression "local_10c = local_10c + 1" (identifier "local_10c") (= "=") (binary_expression "local_10c + 1" (identifier "local_10c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_114 = uVar28;" (assignment_expression "local_114 = uVar28" (identifier "local_114") (= "=") (identifier "uVar28")) (; ";")) (} "}"))) (expression_statement "local_10c = local_114 + 2;" (assignment_expression "local_10c = local_114 + 2" (identifier "local_10c") (= "=") (binary_expression "local_114 + 2" (identifier "local_114") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "local_114 = local_10c;" (assignment_expression "local_114 = local_10c" (identifier "local_114") (= "=") (identifier "local_10c")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)local_114 < iVar4)" (( "(") (binary_expression "(int)local_114 < iVar4" (cast_expression "(int)local_114" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_114")) (< "<") (identifier "iVar4")) () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_0013d234;" (goto "goto") (statement_identifier "LAB_0013d234") (; ";")) (} "}"))) (expression_statement "FUN_000c0450(local_8c);" (call_expression "FUN_000c0450(local_8c)" (identifier "FUN_000c0450") (argument_list "(local_8c)" (( "(") (identifier "local_8c") () ")"))) (; ";")) (if_statement "if (local_e8 == local_b4 && local_ec == local_d0) goto LAB_0013c0e0;" (if "if") (parenthesized_expression "(local_e8 == local_b4 && local_ec == local_d0)" (( "(") (binary_expression "local_e8 == local_b4 && local_ec == local_d0" (binary_expression "local_e8 == local_b4" (identifier "local_e8") (== "==") (identifier "local_b4")) (&& "&&") (binary_expression "local_ec == local_d0" (identifier "local_ec") (== "==") (identifier "local_d0"))) () ")")) (goto_statement "goto LAB_0013c0e0;" (goto "goto") (statement_identifier "LAB_0013c0e0") (; ";"))) (expression_statement "local_f0 = (int *)0x10b;" (assignment_expression "local_f0 = (int *)0x10b" (identifier "local_f0") (= "=") (cast_expression "(int *)0x10b" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x10b"))) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0xf8);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0xf8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (labeled_statement "LAB_0013ba71:\n  local_98 = local_f0;" (statement_identifier "LAB_0013ba71") (: ":") (expression_statement "local_98 = local_f0;" (assignment_expression "local_98 = local_f0" (identifier "local_98") (= "=") (identifier "local_f0")) (; ";"))) (labeled_statement "LAB_0013ba95:\n  FUN_000c0610(uVar5);" (statement_identifier "LAB_0013ba95") (: ":") (expression_statement "FUN_000c0610(uVar5);" (call_expression "FUN_000c0610(uVar5)" (identifier "FUN_000c0610") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";"))) (expression_statement "*(undefined4 *)(param_1 + 0xf8) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xf8) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_00153870();\n  }" ({ "{") (expression_statement "FUN_00153870();" (call_expression "FUN_00153870()" (identifier "FUN_00153870") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return local_98;" (return "return") (identifier "local_98") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */
/* WARNING: Unknown calling convention */

int function_1(type_1 *pVtab,int var_2,type_2 **apVal,type_3 *var_97)

{
  type_4 *psVar1;
  type_5 var_75;
  void *var_68;
  type_6 var_34;
  type_4 *pStmt_00;
  type_7 *pOVar5;
  char var_9;
  type_8 *var_78;
  type_2 *var_79;
  int var_6;
  type_9 *pBlob;
  char *var_5;
  type_10 *pMVar10;
  type_11 var_32;
  type_12 *pVVar12;
  int var_70;
  type_11 var_55;
  type_11 var_56;
  type_11 var_60;
  type_11 var_62;
  type_13 *psVar18;
  type_4 *var_38;
  int var_10;
  char *var_74;
  type_11 var_61;
  type_14 in_DL;
  type_14 enc;
  type_14 enc_00;
  type_14 enc_01;
  type_14 enc_02;
  type_14 enc_03;
  type_14 enc_04;
  void *var_71;
  type_15 *var_69;
  int extraout_EDX;
  int extraout_EDX_00;
  int var_86;
  type_14 *var_53;
  type_14 *var_52;
  type_4 *var_37;
  type_11 var_54;
  type_16 **var_63;
  type_17 *pFVar29;
  int var_1;
  bool bVar30;
  type_18 bVar31;
  type_19 var_88;
  type_19 var_84;
  type_3 var_33;
  int *piVar35;
  type_4 *psVar36;
  char *in_stack_fffffebc;
  type_20 *aSzDel;
  type_17 *in_stack_fffffec8;
  type_14 *var_58;
  type_13 *var_35;
  type_4 *var_47;
  int var_96;
  type_13 *var_85;
  type_4 *var_24;
  int var_59;
  type_11 var_99;
  type_4 *local_108;
  type_11 var_64;
  type_11 var_65;
  type_4 *var_16;
  type_11 var_92;
  type_11 var_93;
  type_11 var_90;
  int var_91;
  type_11 var_94;
  int var_95;
  type_11 var_66;
  type_11 var_67;
  type_15 *local_b0;
  int var_81;
  int var_87;
  type_4 *pAllLangid;
  type_4 *pStmt_3;
  type_21 *var_98;
  type_19 iDocid;
  type_19 iCol;
  type_19 iVal;
  int var_20;
  type_22 *local_64;
  int local_60;
  int local_5c;
  type_4 *var_12;
  type_12 *local_54;
  type_23 *local_4c;
  char *var_73;
  type_16 **local_30;
  type_10 *local_2c;
  type_7 *local_28;
  int var_50;
  int var_100;
  
  bVar31 = 0;
  var_100 = *(int *)(var_1 + 0x14);
  var_81 = 0;
  var_87 = 0;
  if (1 < var_2) {
    if ((aType_23891[(*apVal)->flags & 0x1f] == '\x05') &&
       (var_79 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 2)],
       aType_23891[var_79->flags & 0x1f] != '\x05')) {
      var_5 = (char *)var_3(var_79,in_DL);
      var_6 = var_4(var_79,enc);
      if (var_5 == (char *)0x0) {
        var_16 = (type_4 *)0x7;
        pBlob = (type_9 *)pVtab[0x14].zErrMsg;
        goto LAB_0013ba71;
      }
      if (var_6 == 8) {
        var_6 = var_7(var_5,"optimize",8);
        if (var_6 == 0) {
          var_16 = (type_4 *)var_8((type_22 *)pVtab,0);
          pBlob = (type_9 *)pVtab[0x14].zErrMsg;
          goto LAB_0013ba71;
        }
LAB_0013be5a:
        var_6 = var_7(var_5,"merge=",6);
        if (var_6 == 0) {
LAB_0013be74:
          var_9 = var_5[6];
          var_5 = var_5 + 6;
          var_6 = 0;
          if ((type_18)(var_9 - 0x30U) < 10) {
            do {
              var_5 = var_5 + 1;
              var_6 = var_9 + -0x30 + var_6 * 10;
              var_9 = *var_5;
              if (9 < (type_18)(var_9 - 0x30U)) goto LAB_0013beb1;
            } while (var_6 < 0xccccccb);
          }
          else {
LAB_0013beb1:
            if (var_9 == ',') {
              var_9 = var_5[1];
              if ((var_9 != '\0') && (var_5 = var_5 + 1, (type_18)(var_9 - 0x30U) < 10)) {
                var_10 = 0;
                do {
                  var_5 = var_5 + 1;
                  var_10 = var_9 + -0x30 + var_10 * 10;
                  var_9 = *var_5;
                  if (9 < (type_18)(var_9 - 0x30U)) break;
                } while (var_10 < 0xccccccb);
                if ((1 < var_10) && (var_9 == '\0')) goto LAB_0013bf06;
              }
            }
            else if (var_9 == '\0') {
              var_10 = 8;
LAB_0013bf06:
              var_12 = (type_4 *)0x0;
              if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {
                var_11((int *)&var_12,(type_15 *)pVtab[1].pModule,
                           "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"
                           ,pVtab[1].nRef,pVtab[1].zErrMsg);
                if (var_12 == (type_4 *)0x0) {
                  *(type_24 *)((int)&pVtab[0x13].nRef + 1) = 1;
                  goto LAB_0013bf22;
                }
              }
              else {
LAB_0013bf22:
                var_12 = (type_4 *)var_13((type_22 *)pVtab,var_6,var_10);
              }
              var_14((type_9 *)pVtab[0x14].zErrMsg);
              pVtab[0x14].zErrMsg = (char *)0x0;
              pBlob = (type_9 *)0x0;
              var_16 = var_12;
              goto LAB_0013ba71;
            }
          }
        }
LAB_0013ba5f:
        var_16 = (type_4 *)&DAT_00000001;
        pBlob = (type_9 *)pVtab[0x14].zErrMsg;
        goto LAB_0013ba71;
      }
      if (var_6 == 7) {
        var_6 = var_7(var_5,"rebuild",7);
        if (var_6 != 0) goto LAB_0013be5a;
        var_16 = (type_4 *)var_15((type_22 *)pVtab,0);
        var_20 = (int)var_16;
        if (var_16 != (type_4 *)0x0) goto LAB_0013c0e0;
        var_12 = (type_4 *)0x0;
        var_5 = var_17("SELECT %s",pVtab[0x12].nRef);
        if (var_5 == (char *)0x0) goto LAB_0013d10b;
        var_20 = var_18
                         ((type_15 *)pVtab[1].pModule,var_5,0x80,0,(type_12 *)&var_12,
                          (type_4 **)0x0,(char **)var_97);
        var_19(var_5);
        if (var_20 == 0) {
          var_35 = pVtab[2].pModule;
          var_6 = var_21();
          if (var_6 != 0) {
LAB_0013d10b:
            var_20 = 7;
            goto LAB_0013d116;
          }
          var_24 = (type_4 *)var_22(var_23(in_stack_fffffec8,var_97));
          if (var_24 == (type_4 *)0x0) goto LAB_0013d10b;
          var_38 = var_24;
          var_25(var_24,0,(int)((int)&var_35->iVersion + 1) * 0xc);
          var_6 = (int)pVtab[2].pModule * 4 + 4;
          var_24 = var_24 + var_6;
          local_108 = var_24 + var_6;
          var_16 = (type_4 *)0x0;
          while ((var_20 == 0 && (var_6 = var_26(var_12), var_37 = var_12, var_6 == 100))) {
            var_35 = (type_13 *)0x0;
            var_6 = extraout_EDX;
            if (pVtab[3].zErrMsg != (char *)0x0) {
              pMVar10 = var_27(var_38,(int)in_stack_fffffec8);
              var_88 = var_28(pMVar10);
              var_35 = (type_13 *)var_88;
              var_29(var_37);
              var_6 = extraout_EDX_00;
            }
            var_33 = var_30(var_12,var_6);
            var_10 = (int)((type_25)var_33 >> 0x20);
            var_34._0_4_ = pVtab[0x16].nRef;
            var_34._4_4_ = pVtab[0x16].zErrMsg;
            var_32 = (type_11)((type_11)var_33 < (type_11)pVtab[0x16].nRef);
            var_6 = var_10 - (int)pVtab[0x16].zErrMsg;
            if (((((var_31(var_10,(int)pVtab[0x16].zErrMsg) != var_31(var_6,var_32)) ==
                   (int)(var_6 - var_32) < 0) &&
                 (((var_33 != var_34 || (pVtab[0x17].nRef != 0)) && (var_35 == pVtab[0x17].pModule))
                 )) && ((int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||
               (var_20 = var_36((type_22 *)pVtab), var_20 == 0)) {
              pVtab[0x16].nRef = (int)var_33;
              pVtab[0x16].zErrMsg = (char *)(int)((type_25)var_33 >> 0x20);
              pVtab[0x17].nRef = 0;
              pVtab[0x17].pModule = var_35;
              var_20 = 0;
            }
            var_25(var_38,0,(int)pVtab[2].pModule * 4 + 4);
            if (var_20 == 0) {
              psVar18 = pVtab[2].pModule;
              if (0 < (int)psVar18) {
                var_37 = (type_4 *)0x0;
                do {
                  psVar36 = var_12;
                  psVar1 = var_37 + 1;
                  if (pVtab[2].zErrMsg[(int)var_37] == '\0') {
                    pMVar10 = var_27(var_38,(int)in_stack_fffffec8);
                    var_5 = (char *)var_3(pMVar10,enc_01);
                    var_29(psVar36);
                    psVar36 = var_38 + (int)var_37 * 4;
                    var_20 = var_39((type_22 *)pVtab,(int)var_35,var_5,(int)var_37,
                                               (type_20 *)psVar36);
                    pStmt_00 = var_12;
                    pMVar10 = var_27(var_37,(int)psVar36);
                    var_6 = var_4(pMVar10,enc_02);
                    var_29(pStmt_00);
                    *(int *)(var_38 + (int)pVtab[2].pModule * 4) =
                         *(int *)(var_38 + (int)pVtab[2].pModule * 4) + var_6;
                    if (var_20 != 0) goto LAB_0013d062;
                    psVar18 = pVtab[2].pModule;
                  }
                  var_37 = psVar1;
                } while ((int)psVar1 < (int)psVar18);
              }
              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') goto LAB_0013d0c3;
LAB_0013d09a:
              var_16 = (type_4 *)((int)var_16 + 1);
              if (-1 < (int)psVar18) {
                var_6 = 0;
                do {
                  *(int *)(var_24 + var_6 * 4) =
                       *(int *)(var_24 + var_6 * 4) + *(int *)(var_38 + var_6 * 4);
                  var_6 = var_6 + 1;
                } while (var_6 <= (int)pVtab[2].pModule);
              }
            }
            else {
LAB_0013d062:
              if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {
LAB_0013d0c3:
                var_40(&var_20,(type_22 *)pVtab,(type_20 *)var_38);
                if (var_20 == 0) {
                  psVar18 = pVtab[2].pModule;
                  goto LAB_0013d09a;
                }
              }
              var_41(var_12);
              var_12 = (type_4 *)0x0;
            }
          }
        }
        else {
LAB_0013d116:
          local_108 = (type_4 *)0x0;
          var_24 = (type_4 *)0x0;
          var_38 = (type_4 *)0x0;
          var_16 = (type_4 *)0x0;
        }
        if ((char)pVtab[0x13].nRef != '\0') {
          var_42(&var_20,(type_22 *)pVtab,(type_20 *)var_24,(type_20 *)local_108,
                              (int)var_16);
        }
        var_19(var_38);
        if ((var_12 != (type_4 *)0x0) && (var_6 = var_41(var_12), var_20 == 0)) {
          var_20 = var_6;
        }
        var_16 = (type_4 *)var_20;
      }
      else {
        if (var_6 != 0xf) {
          if (6 < var_6) {
            var_10 = var_7(var_5,"merge=",6);
            if (var_10 == 0) goto LAB_0013be74;
            if (10 < var_6) goto LAB_0013c124;
          }
          goto LAB_0013ba5f;
        }
        var_6 = var_7(var_5,"integrity-check",0xf);
        if (var_6 == 0) {
          pAllLangid = (type_4 *)0x0;
          var_16 = (type_4 *)
                     var_43((type_22 *)pVtab,0x1b,&pAllLangid,(type_2 **)var_97);
          if (var_16 == (type_4 *)0x0) {
            var_44(pAllLangid,(int)pVtab[0x17].pModule,
                               var_23(in_stack_fffffec8,var_97));
            var_44(pAllLangid,(int)pVtab[0x15].pModule,
                               var_23(in_stack_fffffec8,var_97));
            var_66 = 0;
            var_67 = 0;
            do {
              do {
                var_6 = var_26(pAllLangid);
                var_38 = pAllLangid;
                if (var_6 != 100) {
                  var_16 = (type_4 *)var_45(pAllLangid);
                  if (var_16 != (type_4 *)0x0) goto LAB_0013c0e0;
                  var_6 = (pVtab[3].pModule)->iVersion;
                  pStmt_3 = (type_4 *)0x0;
                  var_5 = var_17("SELECT %s",pVtab[0x12].nRef);
                  if (var_5 != (char *)0x0) {
                    var_16 = (type_4 *)
                               var_18
                                         ((type_15 *)pVtab[1].pModule,var_5,0x80,0,(type_12 *)&pStmt_3
                                          ,(type_4 **)0x0,(char **)var_97);
                    var_19(var_5);
                    var_92 = 0;
                    var_93 = 0;
                    var_38 = var_16;
                    var_37 = pStmt_3;
                    if (var_16 != (type_4 *)0x0) goto LAB_0013d4fe;
                    goto LAB_0013d234;
                  }
                  var_41(pStmt_3);
                  pBlob = (type_9 *)pVtab[0x14].zErrMsg;
                  var_16 = (type_4 *)0x7;
                  goto LAB_0013ba71;
                }
                pMVar10 = var_27((type_4 *)var_97,(int)in_stack_fffffec8);
                var_88 = var_28(pMVar10);
                var_32 = (type_11)var_88;
                var_6 = 0x13c3a3;
                var_29(var_38);
              } while ((int)pVtab[0x15].pModule < 1);
              var_24 = (type_4 *)0x0;
              var_59 = 0;
              do {
                var_20 = 0;
                local_64 = (type_22 *)0x0;
                local_60 = 0;
                pFVar29 = (type_17 *)&var_12;
                for (var_10 = 0xe; var_10 != 0; var_10 = var_10 + -1) {
                  pFVar29->apSegment = (type_26 **)0x0;
                  pFVar29 = (type_17 *)((int)pFVar29 + (type_11)bVar31 * -8 + 4);
                }
                local_5c = 0x13;
                pFVar29 = (type_17 *)&var_12;
                var_47 = (type_4 *)
                            var_46((type_22 *)pVtab,var_32,(int)var_24,-2,
                                                (char *)0x0,0,0,1,(type_17 *)&var_12);
                if ((var_47 == (type_4 *)0x0) &&
                   (local_4c = (type_23 *)&var_20,
                   var_47 = (type_4 *)
                               var_48(local_64,pFVar29,in_stack_fffffebc,var_6),
                   var_47 == (type_4 *)0x0)) {
                  var_64 = 0;
                  var_65 = 0;
LAB_0013c8a0:
                  var_6 = 0x13c8ad;
                  var_47 = (type_4 *)
                              var_49((type_22 *)var_97,in_stack_fffffec8);
                  pOVar5 = local_28;
                  if (var_47 == (type_4 *)0x64) {
                    iDocid._0_4_ = (type_15 *)0x0;
                    iDocid._4_4_ = 0;
                    iCol._0_4_ = 0;
                    var_53 = &local_28->opcode + var_50;
                    iCol._4_4_ = 0;
                    var_58 = var_53;
                    var_6 = var_51((char *)local_28,&iDocid);
                    var_97 = (type_3 *)0x0;
                    var_52 = &pOVar5->opcode + var_6;
                    in_stack_fffffec8 = (type_17 *)0x0;
                    if (var_52 < var_53) {
                      while( true ) {
                        iVal._0_4_ = (type_11)*var_52;
                        if ((char)*var_52 < '\0') {
                          var_55 = (type_11)iVal & 0x7f;
                          var_54 = (type_11)var_52[1] << 7;
                          iVal._0_4_ = var_54 | var_55;
                          if ((var_54 & 0x4000) == 0) {
                            var_6 = 2;
                            iVal._4_4_ = 0;
                          }
                          else {
                            var_55 = var_54 & 0x3fff | var_55;
                            var_54 = (type_11)(type_18)*(type_27 *)(var_52 + 2) << 0xe;
                            iVal._0_4_ = var_55 | var_54;
                            if ((var_54 & 0x200000) == 0) {
                              var_6 = 3;
                              iVal._4_4_ = 0;
                            }
                            else {
                              var_55 = var_55 | var_54 & 0x1fffff;
                              var_54 = (type_11)var_52[3] << 0x15;
                              iVal._0_4_ = var_55 | var_54;
                              if ((var_54 & 0x10000000) == 0) {
                                var_6 = 4;
                                iVal._4_4_ = 0;
                              }
                              else {
                                var_55 = var_55 | var_54 & 0xfffffff;
                                var_54 = (type_18)*(int *)(var_52 + 4) & 0x7f;
                                var_56 = var_54 * 0x10000000;
                                iVal._0_4_ = var_55 + var_56;
                                iVal._4_4_ = (var_54 >> 4) + (type_11)var_57(var_55,var_56);
                                if ((char)(type_18)*(int *)(var_52 + 4) < '\0') {
                                  iVal._4_4_ = iVal._4_4_ + (var_52[5] & 0x7f) * 8;
                                  if ((char)var_52[5] < '\0') {
                                    iVal._4_4_ = iVal._4_4_ + (var_52[6] & 0x7f) * 0x400;
                                    if ((char)var_52[6] < '\0') {
                                      iVal._4_4_ = iVal._4_4_ + (var_52[7] & 0x7f) * 0x20000;
                                      if ((char)var_52[7] < '\0') {
                                        iVal._4_4_ = iVal._4_4_ +
                                                     ((type_18)*(int *)(var_52 + 8) & 0x7f) * 0x1000000;
                                        if ((char)(type_18)*(int *)(var_52 + 8) < '\0') {
                                          piVar35 = (int *)(var_52 + 10);
                                          iVal._4_4_ = iVal._4_4_ + (type_11)var_52[9] * -0x80000000;
                                        }
                                        else {
                                          piVar35 = (int *)(var_52 + 9);
                                        }
                                      }
                                      else {
                                        piVar35 = (int *)(var_52 + 8);
                                      }
                                    }
                                    else {
                                      piVar35 = (int *)(var_52 + 7);
                                    }
                                  }
                                  else {
                                    piVar35 = (int *)(var_52 + 6);
                                  }
                                }
                                else {
                                  piVar35 = (int *)(var_52 + 5);
                                }
                                var_6 = (int)piVar35 - (int)var_52;
                              }
                            }
                          }
                        }
                        else {
                          var_6 = 1;
                          iVal._4_4_ = 0;
                        }
                        var_52 = var_52 + var_6;
                        if (var_58 <= var_52) break;
                        if (iVal._4_4_ == 0 && (type_11)(1 < (type_11)iVal) <= (type_11)-iVal._4_4_) {
                          iCol._0_4_ = 0;
                          iCol._4_4_ = 0;
                          if (iVal._4_4_ == 0 && (type_11)iVal == 0) {
                            var_6 = var_51((char *)var_52,&iVal);
                            bVar30 = var_57((type_11)(type_15 *)iDocid,(type_11)iVal);
                            iDocid._0_4_ = (type_15 *)
                                           ((int)((type_15 *)iDocid)->aLimit + ((type_11)iVal - 0x68));
                            iDocid._4_4_ = iDocid._4_4_ + iVal._4_4_ + (type_11)bVar30;
                          }
                          else {
                            var_6 = var_51((char *)var_52,&iCol);
                          }
                          var_52 = var_52 + var_6;
                          if (var_58 <= var_52) break;
                          var_97 = (type_3 *)0x0;
                          in_stack_fffffec8 = (type_17 *)0x0;
                        }
                        else {
                          bVar30 = var_57((type_11)var_97,(type_11)iVal - 2);
                          var_97 = (type_3 *)
                                   ((int)((type_15 *)var_97)->aLimit + ((type_11)iVal - 0x6a));
                          in_stack_fffffec8 =
                               (type_17 *)
                               ((int)in_stack_fffffec8 +
                               (type_11)bVar30 + iVal._4_4_ + -1 + (type_11)(1 < (type_11)iVal));
                          var_54 = (int)(type_15 *)iDocid * 9 + var_32;
                          var_6 = iDocid._4_4_ +
                                  (iDocid._4_4_ << 3 | (type_11)(type_15 *)iDocid >> 0x1d) +
                                  (type_11)var_57((type_11)(type_15 *)iDocid,(int)(type_15 *)iDocid * 8) +
                                  ((int)var_32 >> 0x1f) +
                                  (type_11)var_57((int)(type_15 *)iDocid * 9,var_32);
                          var_55 = var_54 * 9 + (int)var_24;
                          var_6 = (var_6 * 8 | var_54 >> 0x1d) + var_6 +
                                  (type_11)var_57(var_54 * 8,var_54) + var_59 +
                                  (type_11)var_57(var_54 * 9,(type_11)var_24);
                          var_54 = var_55 * 8 + var_55 + (type_11)iCol;
                          var_6 = (var_6 * 8 | var_55 >> 0x1d) +
                                  var_6 + ((int)(type_11)iCol >> 0x1f) +
                                  (type_11)var_57(var_55,(type_11)iCol) +
                                  (type_11)var_57(var_55 * 8,var_55 + (type_11)iCol);
                          var_55 = (int)var_97 + var_54 * 9;
                          var_54 = ((int)var_97 >> 0x1f) +
                                   var_6 + (var_6 * 8 | var_54 >> 0x1d) +
                                   (type_11)var_57(var_54,var_54 * 8) +
                                   (type_11)var_57((type_11)var_97,var_54 * 9);
                          if (0 < (int)local_2c) {
                            var_63 = local_30;
                            do {
                              var_61 = (type_11)*(char *)var_63;
                              var_60 = var_55 * 8;
                              var_56 = var_55 >> 0x1d;
                              var_62 = var_60 + var_61;
                              bVar30 = var_57(var_55,var_62);
                              var_55 = var_55 + var_62;
                              var_54 = var_54 + (var_54 << 3 | var_56) + ((int)var_61 >> 0x1f) +
                                                (type_11)var_57(var_60,var_61) + (type_11)bVar30;
                              var_63 = (type_16 **)((int)var_63 + 1);
                            } while ((type_16 **)((int)local_30 + (int)local_2c) != var_63);
                          }
                          var_64 = var_64 ^ var_55;
                          var_65 = var_65 ^ var_54;
                        }
                      }
                    }
                    goto LAB_0013c8a0;
                  }
                  var_66 = var_66 ^ var_64;
                  var_67 = var_67 ^ var_65;
                }
                var_38 = var_12;
                if (0 < (int)local_54) {
                  var_10 = 0;
                  pVVar12 = local_54;
                  do {
                    while (var_68 = *(void **)(var_38 + var_10 * 4), var_68 == (void *)0x0) {
LAB_0013c4bb:
                      var_10 = var_10 + 1;
                      if ((int)pVVar12 <= var_10) goto LAB_0013c5e2;
                    }
                    if ((*(int *)((int)var_68 + 0x38) == 0) &&
                       (var_69 = *(type_15 **)((int)var_68 + 0x40), var_69 != (type_15 *)0x0)) {
                      if (sqlite3Config.bMemstat == 0) {
                        (*sqlite3Config.m.xFree)(var_69);
                      }
                      else {
                        if (mem0.mutex != (type_28 *)0x0) {
                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);
                        }
                        var_70 = (*sqlite3Config.m.xSize)(var_69);
                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - var_70;
                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;
                        (*sqlite3Config.m.xFree)(var_69);
                        var_97 = (type_3 *)var_69;
                        if (mem0.mutex != (type_28 *)0x0) {
                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);
                          var_97 = (type_3 *)var_69;
                        }
                      }
                    }
                    if ((*(char *)((int)var_68 + 5) == '\0') &&
                       (var_69 = *(type_15 **)((int)var_68 + 0x28), var_69 != (type_15 *)0x0)) {
                      if (sqlite3Config.bMemstat == 0) {
                        (*sqlite3Config.m.xFree)(var_69);
                      }
                      else {
                        if (mem0.mutex != (type_28 *)0x0) {
                          (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);
                        }
                        var_70 = (*sqlite3Config.m.xSize)(var_69);
                        sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - var_70;
                        sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;
                        (*sqlite3Config.m.xFree)(var_69);
                        var_97 = (type_3 *)var_69;
                        if (mem0.mutex != (type_28 *)0x0) {
                          (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);
                          var_97 = (type_3 *)var_69;
                        }
                      }
                    }
                    var_71 = *(void **)((int)var_68 + 0x34);
                    if (var_71 != (void *)0x0) {
                      var_97 = *(type_3 **)((int)var_71 + 0x14);
                      if (((type_15 *)var_97)->mutex != (type_28 *)0x0) {
                        (*sqlite3Config.mutex.xMutexEnter)(((type_15 *)var_97)->mutex);
                      }
                      var_41(*(type_4 **)((int)var_71 + 0x10));
                      if (((type_15 *)var_97)->pnBytesFreed == (int *)0x0) {
                        if (sqlite3Config.bMemstat == 0) {
                          (*sqlite3Config.m.xFree)(var_71);
                        }
                        else {
                          if (mem0.mutex != (type_28 *)0x0) {
                            (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);
                          }
                          var_70 = (*sqlite3Config.m.xSize)(var_71);
                          sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - var_70;
                          sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;
                          (*sqlite3Config.m.xFree)(var_71);
                          if (mem0.mutex != (type_28 *)0x0) {
                            (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);
                          }
                        }
                      }
                      else {
                        var_6 = 0x13c785;
                        var_72((type_15 *)var_97,var_71);
                      }
                      if (((type_15 *)var_97)->mutex != (type_28 *)0x0) {
                        (*sqlite3Config.mutex.xMutexLeave)(((type_15 *)var_97)->mutex);
                      }
                    }
                    if (sqlite3Config.bMemstat != 0) {
                      if (mem0.mutex != (type_28 *)0x0) {
                        (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);
                      }
                      var_70 = (*sqlite3Config.m.xSize)(var_68);
                      sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;
                      sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - var_70;
                      (*sqlite3Config.m.xFree)(var_68);
                      pVVar12 = local_54;
                      var_38 = var_12;
                      if (mem0.mutex != (type_28 *)0x0) {
                        (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);
                        pVVar12 = local_54;
                        var_38 = var_12;
                      }
                      goto LAB_0013c4bb;
                    }
                    var_10 = var_10 + 1;
                    (*sqlite3Config.m.xFree)(var_68);
                    pVVar12 = local_54;
                    var_38 = var_12;
                  } while (var_10 < (int)local_54);
                }
LAB_0013c5e2:
                if (var_38 != (type_4 *)0x0) {
                  if (sqlite3Config.bMemstat == 0) {
                    (*sqlite3Config.m.xFree)(var_38);
                  }
                  else {
                    if (mem0.mutex != (type_28 *)0x0) {
                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);
                    }
                    var_10 = (*sqlite3Config.m.xSize)(var_38);
                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;
                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - var_10;
                    (*sqlite3Config.m.xFree)(var_38);
                    if (mem0.mutex != (type_28 *)0x0) {
                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);
                    }
                  }
                }
                var_5 = var_73;
                if (var_73 != (char *)0x0) {
                  if (sqlite3Config.bMemstat == 0) {
                    (*sqlite3Config.m.xFree)(var_73);
                  }
                  else {
                    if (mem0.mutex != (type_28 *)0x0) {
                      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);
                    }
                    var_10 = (*sqlite3Config.m.xSize)(var_5);
                    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;
                    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - var_10;
                    (*sqlite3Config.m.xFree)(var_5);
                    if (mem0.mutex != (type_28 *)0x0) {
                      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);
                    }
                  }
                }
                bVar30 = 0xfffffffe < var_24;
                var_24 = (type_4 *)((int)var_24 + 1);
                var_59 = var_59 + (type_11)bVar30;
              } while ((int)var_24 < (int)pVtab[0x15].pModule);
            } while (var_47 == (type_4 *)0x0);
            var_45(pAllLangid);
            var_16 = var_47;
          }
        }
        else {
          var_6 = var_7(var_5,"merge=",6);
          if (var_6 == 0) goto LAB_0013be74;
LAB_0013c124:
          var_6 = var_7(var_5,"automerge=",10);
          if (var_6 != 0) goto LAB_0013ba5f;
          var_20 = 0;
          var_74 = var_5 + 10;
          var_12 = (type_4 *)0x0;
          var_9 = var_5[10];
          var_35 = (type_13 *)0x0;
          if ((type_18)(var_9 - 0x30U) < 10) {
            do {
              var_74 = var_74 + 1;
              var_35 = (type_13 *)(var_9 + -0x30 + (int)var_35 * 10);
              var_9 = *var_74;
              if (9 < (type_18)(var_9 - 0x30U)) break;
            } while ((int)var_35 < 0xccccccb);
            if ((var_35 == (type_13 *)0x1) || (0x10 < (int)var_35)) {
              pVtab[4].pModule = (type_13 *)0x8;
            }
            else {
              pVtab[4].pModule = var_35;
            }
          }
          else {
            pVtab[4].pModule = (type_13 *)0x0;
          }
          if (*(char *)((int)&pVtab[0x13].nRef + 1) == '\0') {
            var_11(&var_20,(type_15 *)pVtab[1].pModule,
                       "CREATE TABLE IF NOT EXISTS %Q.\'%q_stat\'(id INTEGER PRIMARY KEY, value BLOB);"
                       ,pVtab[1].nRef,pVtab[1].zErrMsg);
            var_16 = (type_4 *)var_20;
            if (var_20 != 0) goto LAB_0013c0e0;
            *(type_24 *)((int)&pVtab[0x13].nRef + 1) = 1;
          }
          var_16 = (type_4 *)
                     var_43((type_22 *)pVtab,0x17,&var_12,(type_2 **)var_97);
          var_20 = (int)var_16;
          if (var_16 == (type_4 *)0x0) {
            var_44(var_12,2,var_23(in_stack_fffffec8,var_97));
            var_44(var_12,(int)pVtab[4].pModule,var_23(in_stack_fffffec8,var_97));
            var_26(var_12);
            var_16 = (type_4 *)var_45(var_12);
          }
        }
      }
LAB_0013c0e0:
      pBlob = (type_9 *)pVtab[0x14].zErrMsg;
      goto LAB_0013ba71;
    }
    pMVar10 = apVal[(int)&(pVtab[2].pModule)->xCreate];
    var_75 = pMVar10->flags;
    if ((var_75 & 4) == 0) {
      if ((var_75 & 8) == 0) {
        if ((var_75 & 0x12) == 0) goto LAB_0013b900;
        var_88 = var_76(pMVar10);
        var_6 = (int)var_88;
      }
      else {
        var_88 = var_77((pMVar10->u).r);
        var_6 = (int)var_88;
      }
    }
    else {
      var_6 = (pMVar10->u).nZero;
    }
    if (var_6 < 0) {
      var_81 = 0x13;
      pBlob = (type_9 *)pVtab[0x14].zErrMsg;
      goto LAB_0013ba95;
    }
  }
LAB_0013b900:
  var_78 = (type_8 *)var_21();
  if ((var_78 != (type_8 *)0x0) ||
     (var_79 = (type_2 *)var_22(var_23(in_stack_fffffec8,var_97)),
     var_79 == (type_2 *)0x0)) {
    var_81 = 7;
    pBlob = (type_9 *)pVtab[0x14].zErrMsg;
    goto LAB_0013ba95;
  }
  var_35 = pVtab[2].pModule;
  aSzDel = (type_20 *)((int)((int)&var_35->iVersion + 1) * 8);
  piVar35 = (int *)0x0;
  var_25(var_79,0,(size_t)aSzDel);
  if (pVtab[0x16].pModule == (type_13 *)0x0) {
    var_6 = var_43((type_22 *)pVtab,0x10,&var_12,(type_2 **)var_97);
    var_38 = var_12;
    if (var_6 == 0) {
      var_6 = var_80((type_12 *)var_12,1);
      if ((var_6 == 0) && (*(type_28 **)(*(int *)var_38 + 0xc) != (type_28 *)0x0)) {
        (*sqlite3Config.mutex.xMutexLeave)(*(type_28 **)(*(int *)var_38 + 0xc));
      }
      var_26(var_12);
      var_81 = var_45(var_12);
      var_6 = var_81;
      if (var_81 == 0) {
        if (1 < var_2) {
          if (pVtab[3].nRef == 0) goto LAB_0013bc30;
          goto LAB_0013c280;
        }
        goto LAB_0013baf0;
      }
    }
  }
  else {
    var_81 = 0;
    if (var_2 < 2) {
LAB_0013baf0:
      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') {
LAB_0013bce0:
        var_6 = var_82((type_22 *)pVtab,var_79,piVar35,aSzDel);
        var_81 = var_6;
        goto LAB_0013bcfe;
      }
      var_47 = (type_4 *)((int)&var_79->u + (int)var_35 * 4 + 4);
    }
    else if (pVtab[3].nRef == 0) {
LAB_0013bc30:
      pMVar10 = apVal[(int)((int)&(pVtab[2].pModule)->iVersion + 3)];
      if ((aType_23891[pMVar10->flags & 0x1f] == '\x05') &&
         (pMVar10 = apVal[1], aType_23891[pMVar10->flags & 0x1f] == '\x05')) {
LAB_0013c280:
        var_78 = (type_8 *)0x0;
      }
      else {
        if (aType_23891[(*apVal)->flags & 0x1f] == '\x05') {
LAB_0013bc87:
          if (sqlite3_complete::trans[7][*(type_18 *)((int)&(pVtab[1].pModule)->xSavepoint + 2) + 7] ==
              '\x05') {
            var_81 = var_82((type_22 *)pVtab,var_79,piVar35,aSzDel);
            var_78 = (type_8 *)0x0;
          }
          else {
            var_81 = var_83((type_22 *)var_97,(type_2 **)in_stack_fffffec8,var_78);
            var_78 = (type_8 *)&DAT_00000001;
          }
        }
        else {
          var_88 = var_28(*apVal);
          var_78 = (type_8 *)var_88;
          var_84 = var_28(pMVar10);
          if (var_84 != var_23((int)((type_25)var_88 >> 0x20),var_78)) goto LAB_0013bc87;
          var_78 = (type_8 *)0x0;
        }
        var_6 = var_81;
        if (var_81 != 0) goto LAB_0013bb29;
      }
      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;
      var_6 = 0;
LAB_0013bcfe:
      var_47 = (type_4 *)((int)&var_79->u + (int)var_35 * 4 + 4);
      if ((1 < var_2) && (var_6 == 0)) {
        var_88 = var_28(apVal[(int)&(pVtab[2].pModule)->xCreate]);
        var_85 = (type_13 *)var_88;
        if (var_78 == (type_8 *)0x0) goto LAB_0013b9c2;
        goto LAB_0013bd4a;
      }
    }
    else {
      if (aType_23891[(*apVal)->flags & 0x1f] != '\x05') goto LAB_0013bce0;
      var_47 = (type_4 *)((int)&var_79->u + (int)var_35 * 4 + 4);
      var_88 = var_28(apVal[(int)&(pVtab[2].pModule)->xCreate]);
      var_85 = (type_13 *)var_88;
LAB_0013b9c2:
      var_81 = var_83((type_22 *)var_97,(type_2 **)in_stack_fffffec8,var_78);
      if (var_81 == 0x13) {
        var_6 = var_81;
        if (pVtab[3].nRef == 0) {
          var_81 = 0x10b;
          var_6 = var_81;
        }
      }
      else {
LAB_0013bd4a:
        var_6 = var_81;
        if (var_81 == 0) {
          var_35 = (((type_22 *)var_97)->base).pModule;
          var_5 = (char *)(((type_22 *)var_97)->base).nRef;
          var_74 = pVtab[0x16].zErrMsg;
          var_32 = (type_11)(var_35 < (type_13 *)pVtab[0x16].nRef);
          if (((((var_31((int)var_5,(int)var_74) != var_31((int)var_5 - (int)var_74,var_32))
                 == (int)(((int)var_5 - (int)var_74) - var_32) < 0) &&
               (((var_74 != var_5 || (type_13 *)pVtab[0x16].nRef != var_35 ||
                 (pVtab[0x17].nRef != 0)) && (var_85 == pVtab[0x17].pModule)))) &&
              (var_10 = var_81, (int)pVtab[0x16].pModule <= (int)pVtab[0x15].zErrMsg)) ||
             (var_6 = var_36((type_22 *)pVtab), var_10 = var_81, var_6 == 0)) {
            var_81 = 0;
            pVtab[0x17].pModule = var_85;
            psVar18 = pVtab[2].pModule;
            pVtab[0x16].zErrMsg = var_5;
            pVtab[0x16].nRef = (int)var_35;
            pVtab[0x17].nRef = 0;
            var_70 = 0;
            var_6 = var_10;
            if (0 < (int)psVar18) {
              do {
                if (pVtab[2].zErrMsg[var_70] == '\0') {
                  var_5 = (char *)var_3(apVal[var_70 + 2],(type_14)psVar18);
                  var_6 = var_39((type_22 *)pVtab,(int)var_85,var_5,var_70,
                                              (type_20 *)((int)var_47 + var_70 * 4));
                  if (var_6 != 0) break;
                  var_6 = var_4(apVal[var_70 + 2],enc_00);
                  *(type_20 *)((int)var_47 + pVtab[2].pModule * 4) =
                       *(type_20 *)((int)var_47 + pVtab[2].pModule * 4) + var_6;
                  psVar18 = pVtab[2].pModule;
                }
                var_86 = var_70 + 2;
                var_70 = var_70 + 1;
                var_6 = var_10;
              } while (var_86 <= (int)psVar18);
            }
          }
        }
      }
      var_81 = var_6;
      if (*(char *)((int)&pVtab[0x13].nRef + 2) != '\0') {
        var_40(&var_81,(type_22 *)pVtab,(type_20 *)var_47);
      }
      var_87 = var_87 + 1;
    }
    var_6 = var_81;
    if ((char)pVtab[0x13].nRef != '\0') {
      var_42(&var_81,(type_22 *)pVtab,(type_20 *)var_47,(type_20 *)var_79,var_87);
      var_6 = var_81;
    }
  }
LAB_0013bb29:
  var_81 = var_6;
  if (sqlite3Config.bMemstat == 0) {
    (*sqlite3Config.m.xFree)(var_79);
    pBlob = (type_9 *)pVtab[0x14].zErrMsg;
  }
  else {
    if (mem0.mutex != (type_28 *)0x0) {
      (*sqlite3Config.mutex.xMutexEnter)(mem0.mutex);
    }
    var_6 = (*sqlite3Config.m.xSize)(var_79);
    sqlite3Stat.nowValue[9] = sqlite3Stat.nowValue[9] - 1;
    sqlite3Stat.nowValue[0] = sqlite3Stat.nowValue[0] - var_6;
    (*sqlite3Config.m.xFree)(var_79);
    if (mem0.mutex == (type_28 *)0x0) {
      pBlob = (type_9 *)pVtab[0x14].zErrMsg;
    }
    else {
      (*sqlite3Config.mutex.xMutexLeave)(mem0.mutex);
      pBlob = (type_9 *)pVtab[0x14].zErrMsg;
    }
  }
  goto LAB_0013ba95;
LAB_0013d4fe:
  var_41(pStmt_3);
  pBlob = (type_9 *)pVtab[0x14].zErrMsg;
  var_16 = var_38;
  goto LAB_0013ba71;
LAB_0013d234:
  var_10 = var_26(var_37);
  var_38 = pStmt_3;
  if (var_10 == 100) {
    pMVar10 = var_27((type_4 *)var_97,(int)in_stack_fffffec8);
    var_88 = var_28(pMVar10);
    var_29(var_38);
    var_38 = pStmt_3;
    var_35 = pVtab[2].pModule;
    if (pVtab[3].zErrMsg == (char *)0x0) {
      local_b0 = (type_15 *)0x0;
      in_stack_fffffec8 = (type_17 *)0x0;
    }
    else {
      pMVar10 = var_27((type_4 *)var_97,(int)in_stack_fffffec8);
      var_84 = var_28(pMVar10);
      local_b0 = (type_15 *)var_84;
      var_29(var_38);
      in_stack_fffffec8 = (type_17 *)((int)local_b0 >> 0x1f);
      var_35 = pVtab[2].pModule;
    }
    var_34 = var_88 * 9 + var_23(in_stack_fffffec8,local_b0);
    var_55 = (type_11)var_34;
    var_10 = (int)((type_25)var_34 >> 0x20);
    var_32 = var_55 * 9;
    var_10 = var_10 + (var_10 * 8 | var_55 >> 0x1d) + (type_11)var_57(var_55,var_55 * 8);
    var_37 = pStmt_3;
    var_97 = (type_3 *)local_b0;
    if (0 < (int)var_35) {
      var_24 = (type_4 *)0x0;
      var_5 = pVtab[2].zErrMsg;
      do {
        var_99 = (int)var_24 + 1;
        if (var_5[(int)var_24] == '\0') {
          var_54 = (type_11)((type_25)var_32 * 9);
          var_94 = var_54 + (int)var_24;
          var_95 = (int)((type_25)var_32 * 9 >> 0x20) + var_10 * 9 + ((int)var_24 >> 0x1f) +
                     (type_11)var_57(var_54,(type_11)var_24);
          var_90 = (int)var_24 + var_55 * 0x51;
          var_91 = ((int)var_24 >> 0x1f) +
                     (var_10 * 8 | var_32 >> 0x1d) + var_10 + (type_11)var_57(var_55 * 0x48,var_32) +
                     (type_11)var_57((type_11)var_24,var_55 * 0x51);
          while( true ) {
            pMVar10 = var_27((type_4 *)var_97,(int)in_stack_fffffec8);
            var_5 = (char *)var_3(pMVar10,enc_03);
            var_29(var_37);
            var_38 = pStmt_3;
            pMVar10 = var_27((type_4 *)var_97,(int)in_stack_fffffec8);
            var_70 = var_4(pMVar10,enc_04);
            var_29(var_38);
            var_98 = (type_21 *)0x0;
            var_38 = (type_4 *)
                      var_89
                                ((type_29 *)pVtab[3].pModule,(int)local_b0,var_5,var_70,
                                 &var_98);
            if (var_38 == (type_4 *)0x0) {
              while( true ) {
                iCol._0_4_ = 0;
                iVal._0_4_ = 0;
                var_20 = 0;
                var_12 = (type_4 *)0x0;
                var_38 = (type_4 *)
                          (**(type_30 **)(var_6 + 0x14))(var_98,&iDocid,&iCol,&iVal,&var_20,&var_12);
                if (var_38 != (type_4 *)0x0) break;
                var_38 = var_12 + var_90 + var_90 * 8;
                var_54 = ((int)var_12 >> 0x1f) + var_91 + (type_11)var_57((type_11)var_12,var_90) +
                         (var_91 << 3 | var_90 >> 0x1d) +
                         (type_11)var_57((type_11)(var_12 + var_90),var_90 * 8);
                if (0 < (int)(type_11)iCol) {
                  var_97 = (type_3 *)((int)((type_15 *)iDocid)->aLimit + ((type_11)iCol - 0x68));
                  var_69 = (type_15 *)iDocid;
                  do {
                    var_60 = (type_11)*(char *)&var_69->pVfs;
                    var_62 = (int)var_38 * 8;
                    var_56 = (type_11)var_38 >> 0x1d;
                    var_61 = var_62 + var_60;
                    bVar30 = var_57((type_11)var_38,var_61);
                    var_38 = var_38 + var_61;
                    var_54 = var_54 + (var_54 << 3 | var_56) + ((int)var_60 >> 0x1f) +
                                      (type_11)var_57(var_62,var_60) + (type_11)bVar30;
                    var_69 = (type_15 *)((int)&var_69->pVfs + 1);
                  } while ((type_15 *)var_97 != var_69);
                }
                var_92 = var_92 ^ (type_11)var_38;
                var_93 = var_93 ^ var_54;
                if (1 < (int)pVtab[0x15].pModule) {
                  var_97 = (type_3 *)(pVtab[0x15].nRef + 0x18);
                  var_47 = var_12 + var_94 + var_94 * 8;
                  var_96 = ((int)var_12 >> 0x1f) + var_95 + (type_11)var_57((type_11)var_12,var_94) +
                              (var_95 << 3 | var_94 >> 0x1d) +
                              (type_11)var_57((type_11)(var_12 + var_94),var_94 * 8);
                  do {
                    var_70 = *(int *)var_97;
                    if (var_70 <= (int)(type_11)iCol) {
                      var_38 = var_47 + 0x51;
                      var_54 = var_96 + (type_11)((type_4 *)0xffffffae < var_47);
                      if (0 < var_70) {
                        var_69 = (type_15 *)iDocid;
                        do {
                          var_61 = (type_11)*(char *)&var_69->pVfs;
                          var_60 = (int)var_38 * 8;
                          var_56 = (type_11)var_38 >> 0x1d;
                          var_62 = var_60 + var_61;
                          bVar30 = var_57((type_11)var_38,var_62);
                          var_38 = var_38 + var_62;
                          var_54 = var_54 + (var_54 << 3 | var_56) + ((int)var_61 >> 0x1f) +
                                            (type_11)var_57(var_60,var_61) + (type_11)bVar30;
                          var_69 = (type_15 *)((int)&var_69->pVfs + 1);
                        } while ((type_15 *)((int)((type_15 *)iDocid)->aLimit + var_70 + -0x68) !=
                                 var_69);
                      }
                      var_92 = var_92 ^ (type_11)var_38;
                      var_93 = var_93 ^ var_54;
                    }
                    var_97 = (type_3 *)((int)var_97 + 0x18);
                    bVar30 = (type_4 *)0xffffffae < var_47;
                    var_47 = var_47 + 0x51;
                    var_96 = var_96 + (type_11)bVar30;
                  } while ((type_3 *)(pVtab[0x15].nRef + (int)pVtab[0x15].pModule * 0x18) !=
                           var_97);
                }
              }
            }
            if (var_98 != (type_21 *)0x0) {
              (**(type_30 **)(var_6 + 0x10))(var_98);
            }
            if (var_38 != (type_4 *)0x65) goto LAB_0013d4fe;
            var_35 = pVtab[2].pModule;
            var_37 = pStmt_3;
            if ((int)var_35 <= (int)var_99) goto LAB_0013d234;
            bVar30 = 0xfffffffe < var_94;
            var_94 = var_94 + 1;
            var_95 = var_95 + (type_11)bVar30;
            var_5 = pVtab[2].zErrMsg;
            var_54 = var_99;
            bVar30 = 0xfffffffe < var_90;
            var_90 = var_90 + 1;
            var_91 = var_91 + (type_11)bVar30;
            if (var_5[var_99] != '\0') break;
            var_99 = var_99 + 1;
            var_24 = (type_4 *)var_54;
          }
          var_99 = (int)var_24 + 2;
        }
        var_24 = (type_4 *)var_99;
      } while ((int)var_24 < (int)var_35);
    }
    goto LAB_0013d234;
  }
  var_41(pStmt_3);
  if (var_93 == var_67 && var_92 == var_66) goto LAB_0013c0e0;
  var_16 = (type_4 *)0x10b;
  pBlob = (type_9 *)pVtab[0x14].zErrMsg;
LAB_0013ba71:
  var_81 = (int)var_16;
LAB_0013ba95:
  var_14(pBlob);
  pVtab[0x14].zErrMsg = (char *)0x0;
  if (var_100 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_101();
  }
  return var_81;
}


(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier)))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal))))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) right: (number_literal))))))) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) consequence: (break_statement))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (pointer_expression argument: (identifier)) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list)))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))) right: (subscript_expression argument: (identifier) index: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (pointer_expression argument: (identifier)) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (number_literal) (number_literal) (number_literal) (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (number_literal))))) right: (unary_expression argument: (subscript_expression argument: (identifier) index: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier))))) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) right: (identifier)) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (identifier)) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (identifier))) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) consequence: (break_statement))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (subscript_expression argument: (identifier) index: (number_literal)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list)))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (false))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal))))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) right: (number_literal))))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (number_literal))))))) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (false))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal))))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (identifier))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (false)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (true)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (false)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal))))))) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal))))))) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (identifier))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier)))) right: (number_literal)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list)))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier))))) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)) right: (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (identifier) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) (identifier))))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) (identifier))))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) (binary_expression left: (identifier) right: (number_literal)))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (identifier)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (char_literal (escape_sequence)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (identifier)))))

int * MASKED(int param_1,int param_2,int *param_3,uint *param_4)

{
  ushort uVar1;
  char cVar2;
  int iVar3;
  void *__s;
  int iVar4;
  undefined4 uVar5;
  int *piVar6;
  uint uVar7;
  int iVar8;
  int iVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  int *__s_00;
  undefined1 *puVar14;
  char *pcVar15;
  byte *pbVar16;
  uint uVar17;
  int *extraout_ECX;
  int *extraout_ECX_00;
  int *extraout_ECX_01;
  int *extraout_ECX_02;
  int *extraout_ECX_03;
  int *extraout_ECX_04;
  int *extraout_ECX_05;
  int *extraout_ECX_06;
  int iVar18;
  byte *pbVar19;
  int unaff_EBP;
  uint uVar20;
  int **ppiVar21;
  byte *pbVar22;
  int in_GS_OFFSET;
  bool bVar23;
  byte bVar24;
  longlong lVar25;
  longlong lVar26;
  undefined8 uVar27;
  uint uVar28;
  int *__s_01;
  int local_134;
  int *local_12c;
  int local_128;
  int local_124;
  uint local_114;
  int local_110;
  uint local_10c;
  int *local_108;
  uint local_104;
  uint local_100;
  int *local_f0;
  uint local_ec;
  uint local_e8;
  uint local_e4;
  int local_e0;
  uint local_dc;
  int local_d8;
  uint local_d0;
  uint local_b4;
  int *local_98;
  undefined4 local_94;
  undefined4 local_8c;
  int local_88;
  char *local_84;
  int local_80;
  uint local_7c [5];
  int *local_68;
  undefined4 local_64;
  undefined4 local_60;
  undefined4 local_5c;
  int *local_58;
  int local_54;
  int **local_4c;
  int local_48;
  char *local_30;
  int local_2c;
  int local_28;
  int local_24;
  int local_20;
  
  bVar24 = 0;
  FUN_0003a405();
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_94 = 0;
  if (1 < param_2) {
    if ((*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') &&
       (*(char *)(unaff_EBP + 0x2847a +
                 (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 2] + 8) & 0x1f)) != '\x05')) {
      iVar3 = FUN_0007f6d0();
      iVar4 = FUN_0007f360();
      if (iVar3 == 0) {
        local_f0 = (int *)0x7;
        uVar5 = *(undefined4 *)(param_1 + 0xf8);
        goto LAB_0013ba71;
      }
      if (iVar4 == 8) {
        iVar4 = FUN_00044730();
        if (iVar4 == 0) {
          local_f0 = (int *)FUN_00139450();
          uVar5 = *(undefined4 *)(param_1 + 0xf8);
          goto LAB_0013ba71;
        }
LAB_0013be5a:
        iVar4 = FUN_00044730();
        if (iVar4 == 0) {
LAB_0013be74:
          cVar2 = *(char *)(iVar3 + 6);
          pcVar15 = (char *)(iVar3 + 6);
          iVar3 = 0;
          if ((byte)(cVar2 - 0x30U) < 10) {
            do {
              pcVar15 = pcVar15 + 1;
              iVar3 = cVar2 + -0x30 + iVar3 * 10;
              cVar2 = *pcVar15;
              if (9 < (byte)(cVar2 - 0x30U)) goto LAB_0013beb1;
            } while (iVar3 < 0xccccccb);
          }
          else {
LAB_0013beb1:
            if (cVar2 == ',') {
              cVar2 = pcVar15[1];
              if ((cVar2 != '\0') && (pcVar15 = pcVar15 + 1, (byte)(cVar2 - 0x30U) < 10)) {
                iVar3 = 0;
                do {
                  pcVar15 = pcVar15 + 1;
                  iVar3 = cVar2 + -0x30 + iVar3 * 10;
                  cVar2 = *pcVar15;
                  if (9 < (byte)(cVar2 - 0x30U)) break;
                } while (iVar3 < 0xccccccb);
                if (1 < iVar3) goto joined_r0x0013cd82;
              }
            }
            else {
joined_r0x0013cd82:
              if (cVar2 == '\0') {
                local_58 = (int *)0x0;
                if (*(char *)(param_1 + 0xe9) == '\0') {
                  FUN_00107d80(&local_58,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,
                               *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));
                  if (local_58 == (int *)0x0) {
                    *(undefined1 *)(param_1 + 0xe9) = 1;
                    goto LAB_0013bf22;
                  }
                }
                else {
LAB_0013bf22:
                  local_58 = (int *)FUN_0012d940();
                }
                FUN_000c0610(*(undefined4 *)(param_1 + 0xf8));
                *(undefined4 *)(param_1 + 0xf8) = 0;
                uVar5 = 0;
                local_f0 = local_58;
                goto LAB_0013ba71;
              }
            }
          }
        }
LAB_0013ba5f:
        local_f0 = (int *)&DAT_00000001;
        uVar5 = *(undefined4 *)(param_1 + 0xf8);
        goto LAB_0013ba71;
      }
      if (iVar4 == 7) {
        iVar4 = FUN_00044730();
        if (iVar4 != 0) goto LAB_0013be5a;
        local_f0 = (int *)FUN_0010da50();
        local_68 = local_f0;
        if (local_f0 != (int *)0x0) goto LAB_0013c0e0;
        local_58 = (int *)0x0;
        iVar3 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));
        piVar6 = extraout_ECX;
        if (iVar3 == 0) goto LAB_0013d10b;
        local_68 = (int *)FUN_00100700(0x80,0,&local_58,0);
        FUN_00044000(iVar3);
        piVar6 = local_68;
        if (local_68 == (int *)0x0) {
          iVar3 = *(int *)(param_1 + 0x18);
          iVar4 = FUN_00067fc0();
          piVar6 = extraout_ECX_00;
          if (iVar4 != 0) {
LAB_0013d10b:
            local_68 = (int *)0x7;
            goto LAB_0013d116;
          }
          __s_00 = (int *)FUN_00055780();
          piVar6 = extraout_ECX_01;
          if (__s_00 == (int *)0x0) goto LAB_0013d10b;
          __s_01 = __s_00;
          memset(__s_00,0,(iVar3 + 1) * 0xc);
          iVar3 = *(int *)(param_1 + 0x18);
          local_108 = __s_00 + iVar3 * 2 + 2;
          local_f0 = (int *)0x0;
          piVar6 = extraout_ECX_02;
          while ((local_68 == (int *)0x0 &&
                 (iVar4 = FUN_000e7e00(local_58), piVar6 = extraout_ECX_03, iVar4 == 100))) {
            local_134 = 0;
            if (*(int *)(param_1 + 0x2c) != 0) {
              FUN_0004c5d0();
              local_134 = FUN_00045540();
              FUN_0004c6c0();
            }
            lVar25 = FUN_0005b180();
            iVar18 = (int)((ulonglong)lVar25 >> 0x20);
            uVar7 = (uint)((uint)lVar25 < *(uint *)(param_1 + 0x10c));
            iVar4 = iVar18 - *(int *)(param_1 + 0x110);
            if (((((SBORROW4(iVar18,*(int *)(param_1 + 0x110)) != SBORROW4(iVar4,uVar7)) ==
                   (int)(iVar4 - uVar7) < 0) &&
                 (((lVar25 != *(longlong *)(param_1 + 0x10c) || (*(int *)(param_1 + 0x118) != 0)) &&
                  (local_134 == *(int *)(param_1 + 0x114))))) &&
                (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))) ||
               (local_68 = (int *)FUN_0013aff0(), local_68 == (int *)0x0)) {
              *(longlong *)(param_1 + 0x10c) = lVar25;
              *(undefined4 *)(param_1 + 0x118) = 0;
              *(int *)(param_1 + 0x114) = local_134;
              local_68 = (int *)0x0;
            }
            memset(__s_01,0,*(int *)(param_1 + 0x18) * 4 + 4);
            piVar6 = __s_01;
            if (local_68 == (int *)0x0) {
              iVar4 = *(int *)(param_1 + 0x18);
              piVar6 = extraout_ECX_04;
              if (0 < iVar4) {
                iVar18 = 0;
                do {
                  iVar9 = iVar18 + 1;
                  if (*(char *)(*(int *)(param_1 + 0x20) + iVar18) == '\0') {
                    FUN_0004c5d0();
                    FUN_0007f6d0();
                    FUN_0004c6c0();
                    local_68 = (int *)FUN_001223f0(iVar18,__s_01 + iVar18);
                    FUN_0004c5d0();
                    iVar4 = FUN_0007f360();
                    piVar6 = __s_01;
                    FUN_0004c6c0();
                    piVar6[*(int *)(param_1 + 0x18)] = piVar6[*(int *)(param_1 + 0x18)] + iVar4;
                    if (local_68 != (int *)0x0) goto LAB_0013d062;
                    iVar4 = *(int *)(param_1 + 0x18);
                    __s_01 = piVar6;
                  }
                  iVar18 = iVar9;
                } while (iVar9 < iVar4);
              }
              if (*(char *)(param_1 + 0xea) != '\0') goto LAB_0013d0c3;
LAB_0013d09a:
              local_f0 = (int *)((int)local_f0 + 1);
              if (-1 < iVar4) {
                iVar4 = 0;
                do {
                  __s_00[iVar3 + iVar4 + 1] = __s_00[iVar3 + iVar4 + 1] + __s_01[iVar4];
                  iVar4 = iVar4 + 1;
                  piVar6 = __s_01;
                } while (iVar4 <= *(int *)(param_1 + 0x18));
              }
            }
            else {
LAB_0013d062:
              __s_01 = piVar6;
              if (*(char *)(param_1 + 0xea) != '\0') {
LAB_0013d0c3:
                FUN_00111bd0();
                if (local_68 == (int *)0x0) {
                  iVar4 = *(int *)(param_1 + 0x18);
                  piVar6 = extraout_ECX_06;
                  goto LAB_0013d09a;
                }
              }
              FUN_000c0450(local_58);
              local_58 = (int *)0x0;
              piVar6 = extraout_ECX_05;
            }
          }
        }
        else {
LAB_0013d116:
          local_108 = (int *)0x0;
          __s_01 = (int *)0x0;
          local_f0 = (int *)0x0;
        }
        if (*(char *)(param_1 + 0xe8) != '\0') {
          FUN_00111db0(local_108,local_f0,piVar6,piVar6);
        }
        FUN_00044000(__s_01);
        if ((local_58 != (int *)0x0) &&
           (piVar6 = (int *)FUN_000c0450(local_58), local_68 == (int *)0x0)) {
          local_68 = piVar6;
        }
        local_f0 = local_68;
      }
      else {
        if (iVar4 != 0xf) {
          if (6 < iVar4) {
            iVar18 = FUN_00044730();
            if (iVar18 == 0) goto LAB_0013be74;
            if (10 < iVar4) goto LAB_0013c124;
          }
          goto LAB_0013ba5f;
        }
        iVar4 = FUN_00044730();
        if (iVar4 == 0) {
          local_f0 = (int *)FUN_00101610();
          if (local_f0 == (int *)0x0) {
            FUN_00079e80();
            FUN_00079e00();
            local_d0 = 0;
            local_b4 = 0;
            do {
              do {
                iVar3 = FUN_000e7e00(0);
                if (iVar3 != 100) {
                  local_f0 = (int *)FUN_000bfe40(0);
                  if (local_f0 != (int *)0x0) goto LAB_0013c0e0;
                  iVar3 = **(int **)(param_1 + 0x24);
                  local_8c = 0;
                  iVar4 = FUN_000a3060(unaff_EBP + 0x230e7,*(undefined4 *)(param_1 + 0xdc));
                  if (iVar4 != 0) {
                    local_f0 = (int *)FUN_00100700(0x80,0,&local_8c,0);
                    FUN_00044000(iVar4);
                    local_ec = 0;
                    local_e8 = 0;
                    piVar6 = local_f0;
                    uVar5 = local_8c;
                    if (local_f0 != (int *)0x0) goto LAB_0013d4fe;
                    goto LAB_0013d234;
                  }
                  FUN_000c0450(local_8c);
                  uVar5 = *(undefined4 *)(param_1 + 0xf8);
                  local_f0 = (int *)0x7;
                  goto LAB_0013ba71;
                }
                FUN_0004c5d0();
                uVar7 = FUN_00045540();
                FUN_0004c6c0();
              } while (*(int *)(param_1 + 0xfc) < 1);
              local_114 = 0;
              local_110 = 0;
              do {
                local_68 = (int *)0x0;
                local_64 = 0;
                local_60 = 0;
                ppiVar21 = &local_58;
                for (iVar3 = 0xe; iVar3 != 0; iVar3 = iVar3 + -1) {
                  *ppiVar21 = (int *)0x0;
                  ppiVar21 = ppiVar21 + (uint)bVar24 * -2 + 1;
                }
                local_5c = 0x13;
                local_12c = (int *)FUN_0012aa30(0xfffffffe,0,0,0,1,&local_58);
                if ((local_12c == (int *)0x0) &&
                   (local_4c = &local_68, local_12c = (int *)FUN_0012cf60(local_64),
                   local_12c == (int *)0x0)) {
                  local_104 = 0;
                  local_100 = 0;
LAB_0013c8a0:
                  local_12c = (int *)FUN_0012ba30();
                  iVar3 = local_28;
                  if (local_12c == (int *)0x64) {
                    local_84 = (char *)0x0;
                    local_80 = 0;
                    local_7c[0] = 0;
                    pbVar19 = (byte *)(local_24 + local_28);
                    local_7c[1] = 0;
                    iVar4 = FUN_0003e400();
                    uVar28 = 0;
                    pbVar22 = (byte *)(iVar3 + iVar4);
                    iVar3 = 0;
                    if (pbVar22 < pbVar19) {
                      while( true ) {
                        local_7c[2] = (uint)*pbVar22;
                        if ((char)*pbVar22 < '\0') {
                          uVar10 = local_7c[2] & 0x7f;
                          uVar20 = (uint)pbVar22[1] << 7;
                          local_7c[2] = uVar20 | uVar10;
                          if ((uVar20 & 0x4000) == 0) {
                            iVar4 = 2;
                            local_7c[3] = 0;
                          }
                          else {
                            uVar10 = uVar20 & 0x3fff | uVar10;
                            uVar20 = (uint)pbVar22[2] << 0xe;
                            local_7c[2] = uVar10 | uVar20;
                            if ((uVar20 & 0x200000) == 0) {
                              iVar4 = 3;
                              local_7c[3] = 0;
                            }
                            else {
                              uVar10 = uVar10 | uVar20 & 0x1fffff;
                              uVar20 = (uint)pbVar22[3] << 0x15;
                              local_7c[2] = uVar10 | uVar20;
                              if ((uVar20 & 0x10000000) == 0) {
                                iVar4 = 4;
                                local_7c[3] = 0;
                              }
                              else {
                                uVar10 = uVar10 | uVar20 & 0xfffffff;
                                uVar20 = pbVar22[4] & 0x7f;
                                uVar11 = uVar20 * 0x10000000;
                                local_7c[2] = uVar10 + uVar11;
                                local_7c[3] = (uVar20 >> 4) + (uint)CARRY4(uVar10,uVar11);
                                if ((char)pbVar22[4] < '\0') {
                                  local_7c[3] = local_7c[3] + (pbVar22[5] & 0x7f) * 8;
                                  if ((char)pbVar22[5] < '\0') {
                                    local_7c[3] = local_7c[3] + (pbVar22[6] & 0x7f) * 0x400;
                                    if ((char)pbVar22[6] < '\0') {
                                      local_7c[3] = local_7c[3] + (pbVar22[7] & 0x7f) * 0x20000;
                                      if ((char)pbVar22[7] < '\0') {
                                        local_7c[3] = local_7c[3] + (pbVar22[8] & 0x7f) * 0x1000000;
                                        if ((char)pbVar22[8] < '\0') {
                                          pbVar16 = pbVar22 + 10;
                                          local_7c[3] = local_7c[3] + (uint)pbVar22[9] * -0x80000000
                                          ;
                                        }
                                        else {
                                          pbVar16 = pbVar22 + 9;
                                        }
                                      }
                                      else {
                                        pbVar16 = pbVar22 + 8;
                                      }
                                    }
                                    else {
                                      pbVar16 = pbVar22 + 7;
                                    }
                                  }
                                  else {
                                    pbVar16 = pbVar22 + 6;
                                  }
                                }
                                else {
                                  pbVar16 = pbVar22 + 5;
                                }
                                iVar4 = (int)pbVar16 - (int)pbVar22;
                              }
                            }
                          }
                        }
                        else {
                          iVar4 = 1;
                          local_7c[3] = 0;
                        }
                        pbVar22 = pbVar22 + iVar4;
                        if (pbVar19 <= pbVar22) break;
                        if (local_7c[3] == 0 && (uint)(1 < local_7c[2]) <= -local_7c[3]) {
                          local_7c[0] = 0;
                          local_7c[1] = 0;
                          if (local_7c[3] == 0 && local_7c[2] == 0) {
                            iVar3 = FUN_0003e400(uVar28,iVar3);
                            bVar23 = CARRY4((uint)local_84,local_7c[2]);
                            local_84 = local_84 + local_7c[2];
                            local_80 = local_80 + local_7c[3] + (uint)bVar23;
                          }
                          else {
                            iVar3 = FUN_0003e400(uVar28,iVar3);
                          }
                          pbVar22 = pbVar22 + iVar3;
                          if (pbVar19 <= pbVar22) break;
                          uVar28 = 0;
                          iVar3 = 0;
                        }
                        else {
                          bVar23 = CARRY4(uVar28,local_7c[2] - 2);
                          uVar28 = uVar28 + (local_7c[2] - 2);
                          iVar3 = iVar3 + local_7c[3] + -1 + (uint)(1 < local_7c[2]) + (uint)bVar23;
                          uVar20 = (int)local_84 * 9 + uVar7;
                          iVar4 = local_80 + (local_80 << 3 | (uint)local_84 >> 0x1d) +
                                  (uint)CARRY4((uint)local_84,(int)local_84 * 8) +
                                  ((int)uVar7 >> 0x1f) + (uint)CARRY4((int)local_84 * 9,uVar7);
                          uVar10 = uVar20 * 9 + local_114;
                          iVar4 = (iVar4 * 8 | uVar20 >> 0x1d) + iVar4 +
                                  (uint)CARRY4(uVar20 * 8,uVar20) + local_110 +
                                  (uint)CARRY4(uVar20 * 9,local_114);
                          uVar20 = uVar10 * 8 + uVar10 + local_7c[0];
                          iVar4 = (iVar4 * 8 | uVar10 >> 0x1d) +
                                  iVar4 + ((int)local_7c[0] >> 0x1f) +
                                  (uint)CARRY4(uVar10,local_7c[0]) +
                                  (uint)CARRY4(uVar10 * 8,uVar10 + local_7c[0]);
                          uVar10 = uVar28 + uVar20 * 9;
                          uVar20 = ((int)uVar28 >> 0x1f) +
                                   iVar4 + (iVar4 * 8 | uVar20 >> 0x1d) +
                                   (uint)CARRY4(uVar20,uVar20 * 8) + (uint)CARRY4(uVar28,uVar20 * 9)
                          ;
                          if (0 < local_2c) {
                            pcVar15 = local_30;
                            do {
                              uVar17 = (uint)*pcVar15;
                              uVar12 = uVar10 * 8;
                              uVar11 = uVar10 >> 0x1d;
                              uVar13 = uVar12 + uVar17;
                              bVar23 = CARRY4(uVar10,uVar13);
                              uVar10 = uVar10 + uVar13;
                              uVar20 = uVar20 + (uVar20 << 3 | uVar11) + ((int)uVar17 >> 0x1f) +
                                                (uint)CARRY4(uVar12,uVar17) + (uint)bVar23;
                              pcVar15 = pcVar15 + 1;
                            } while (local_30 + local_2c != pcVar15);
                          }
                          local_104 = local_104 ^ uVar10;
                          local_100 = local_100 ^ uVar20;
                        }
                      }
                    }
                    goto LAB_0013c8a0;
                  }
                  local_d0 = local_d0 ^ local_104;
                  local_b4 = local_b4 ^ local_100;
                }
                piVar6 = local_58;
                if (0 < local_54) {
                  iVar4 = 0;
                  iVar3 = local_54;
                  do {
                    while (iVar18 = piVar6[iVar4], iVar18 == 0) {
LAB_0013c4bb:
                      iVar4 = iVar4 + 1;
                      if (iVar3 <= iVar4) goto LAB_0013c5e2;
                    }
                    if ((*(int *)(iVar18 + 0x38) == 0) &&
                       (iVar3 = *(int *)(iVar18 + 0x40), iVar3 != 0)) {
                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {
                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);
                      }
                      else {
                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));
                        }
                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);
                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;
                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;
                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);
                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));
                        }
                      }
                    }
                    if ((*(char *)(iVar18 + 5) == '\0') &&
                       (iVar3 = *(int *)(iVar18 + 0x28), iVar3 != 0)) {
                      if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {
                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);
                      }
                      else {
                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                          (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));
                        }
                        iVar9 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);
                        *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar9;
                        *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;
                        (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);
                        if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                          (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));
                        }
                      }
                    }
                    iVar3 = *(int *)(iVar18 + 0x34);
                    if (iVar3 != 0) {
                      iVar9 = *(int *)(iVar3 + 0x14);
                      if (*(int *)(iVar9 + 0xc) != 0) {
                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(iVar9 + 0xc));
                      }
                      FUN_000c0450(*(undefined4 *)(iVar3 + 0x10));
                      if (*(int *)(iVar9 + 0x1e0) == 0) {
                        if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {
                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);
                        }
                        else {
                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                            (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));
                          }
                          iVar8 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);
                          *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar8;
                          *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;
                          (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);
                          if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                            (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));
                          }
                        }
                      }
                      else {
                        FUN_0003a540();
                      }
                      if (*(int *)(iVar9 + 0xc) != 0) {
                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(iVar9 + 0xc));
                      }
                    }
                    if (*(int *)(unaff_EBP + 0x7fb7a) != 0) {
                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                        (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));
                      }
                      iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar18);
                      *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;
                      *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;
                      (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);
                      iVar3 = local_54;
                      piVar6 = local_58;
                      if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));
                        iVar3 = local_54;
                        piVar6 = local_58;
                      }
                      goto LAB_0013c4bb;
                    }
                    iVar4 = iVar4 + 1;
                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar18);
                    iVar3 = local_54;
                    piVar6 = local_58;
                  } while (iVar4 < local_54);
                }
LAB_0013c5e2:
                if (piVar6 != (int *)0x0) {
                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {
                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);
                  }
                  else {
                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));
                    }
                    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(piVar6);
                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;
                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;
                    (**(code **)(unaff_EBP + 0x7fbaa))(piVar6);
                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));
                    }
                  }
                }
                iVar3 = local_48;
                if (local_48 != 0) {
                  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {
                    (**(code **)(unaff_EBP + 0x7fbaa))(local_48);
                  }
                  else {
                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));
                    }
                    iVar4 = (**(code **)(unaff_EBP + 0x7fbb2))(iVar3);
                    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;
                    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar4;
                    (**(code **)(unaff_EBP + 0x7fbaa))(iVar3);
                    if (*(int *)(unaff_EBP + 0x8155e) != 0) {
                      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));
                    }
                  }
                }
                bVar23 = 0xfffffffe < local_114;
                local_114 = local_114 + 1;
                local_110 = local_110 + (uint)bVar23;
              } while ((int)local_114 < *(int *)(param_1 + 0xfc));
            } while (local_12c == (int *)0x0);
            FUN_000bfe40(0);
            local_f0 = local_12c;
          }
        }
        else {
          iVar4 = FUN_00044730();
          if (iVar4 == 0) goto LAB_0013be74;
LAB_0013c124:
          iVar4 = FUN_00044730();
          if (iVar4 != 0) goto LAB_0013ba5f;
          local_68 = (int *)0x0;
          pcVar15 = (char *)(iVar3 + 10);
          local_58 = (int *)0x0;
          cVar2 = *(char *)(iVar3 + 10);
          iVar3 = 0;
          if ((byte)(cVar2 - 0x30U) < 10) {
            do {
              pcVar15 = pcVar15 + 1;
              iVar3 = cVar2 + -0x30 + iVar3 * 10;
              cVar2 = *pcVar15;
              if (9 < (byte)(cVar2 - 0x30U)) break;
            } while (iVar3 < 0xccccccb);
            if ((iVar3 == 1) || (0x10 < iVar3)) {
              *(undefined4 *)(param_1 + 0x30) = 8;
            }
            else {
              *(int *)(param_1 + 0x30) = iVar3;
            }
          }
          else {
            *(undefined4 *)(param_1 + 0x30) = 0;
          }
          if (*(char *)(param_1 + 0xe9) == '\0') {
            FUN_00107d80(&local_68,*(undefined4 *)(param_1 + 0xc),unaff_EBP + 0x324ae,
                         *(undefined4 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x14));
            local_f0 = local_68;
            if (local_68 != (int *)0x0) goto LAB_0013c0e0;
            *(undefined1 *)(param_1 + 0xe9) = 1;
          }
          local_f0 = (int *)FUN_00101610();
          local_68 = local_f0;
          if (local_f0 == (int *)0x0) {
            FUN_00079e80();
            FUN_00079e00();
            FUN_000e7e00(local_58);
            local_f0 = (int *)FUN_000bfe40(local_58);
          }
        }
      }
LAB_0013c0e0:
      uVar5 = *(undefined4 *)(param_1 + 0xf8);
      goto LAB_0013ba71;
    }
    piVar6 = (int *)param_3[*(int *)(param_1 + 0x18) + 4];
    uVar1 = *(ushort *)(piVar6 + 2);
    if ((uVar1 & 4) == 0) {
      if ((uVar1 & 8) == 0) {
        if ((uVar1 & 0x12) == 0) goto LAB_0013b900;
        iVar3 = FUN_0003c930();
      }
      else {
        iVar3 = FUN_0003c8b0(*piVar6,piVar6[1]);
      }
    }
    else {
      iVar3 = *piVar6;
    }
    if (iVar3 < 0) {
      local_98 = (int *)0x13;
      uVar5 = *(undefined4 *)(param_1 + 0xf8);
      goto LAB_0013ba95;
    }
  }
LAB_0013b900:
  iVar3 = FUN_00067fc0();
  if ((iVar3 != 0) || (__s = (void *)FUN_00055780(), __s == (void *)0x0)) {
    local_98 = (int *)0x7;
    uVar5 = *(undefined4 *)(param_1 + 0xf8);
    goto LAB_0013ba95;
  }
  iVar3 = *(int *)(param_1 + 0x18) + 1;
  memset(__s,0,iVar3 * 8);
  bVar23 = false;
  if (*(int *)(param_1 + 0x108) == 0) {
    local_98 = (int *)FUN_00101610();
    piVar6 = local_58;
    if (local_98 == (int *)0x0) {
      iVar4 = FUN_00079820();
      if ((iVar4 == 0) && (*(int *)(*piVar6 + 0xc) != 0)) {
        (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(*piVar6 + 0xc));
      }
      FUN_000e7e00(local_58);
      local_98 = (int *)FUN_000bfe40(local_58);
      if (local_98 == (int *)0x0) {
        if (1 < param_2) {
          if (*(int *)(param_1 + 0x28) == 0) goto LAB_0013bc30;
          goto LAB_0013c280;
        }
        goto LAB_0013baf0;
      }
    }
  }
  else {
    local_98 = (int *)0x0;
    if (param_2 < 2) {
LAB_0013baf0:
      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05') {
LAB_0013bce0:
        piVar6 = (int *)FUN_0013b480(__s);
        local_98 = piVar6;
        goto LAB_0013bcfe;
      }
    }
    else if (*(int *)(param_1 + 0x28) == 0) {
LAB_0013bc30:
      if ((*(char *)(unaff_EBP + 0x2847a +
                    (*(ushort *)(param_3[*(int *)(param_1 + 0x18) + 3] + 8) & 0x1f)) == '\x05') &&
         (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(param_3[1] + 8) & 0x1f)) == '\x05')) {
LAB_0013c280:
        bVar23 = false;
      }
      else {
        if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) == '\x05') {
LAB_0013bc87:
          if ((&UNK_000274d9)[(uint)*(byte *)(*(int *)(param_1 + 0xc) + 0x52) + unaff_EBP] == '\x05'
             ) {
            local_98 = (int *)FUN_0013b480(__s);
            bVar23 = false;
          }
          else {
            local_98 = (int *)FUN_0010b320();
            bVar23 = true;
          }
        }
        else {
          lVar25 = FUN_00045540();
          lVar26 = FUN_00045540();
          if (lVar25 != lVar26) goto LAB_0013bc87;
          bVar23 = false;
        }
        if (local_98 != (int *)0x0) goto LAB_0013bb29;
      }
      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')
      goto LAB_0013bce0;
      piVar6 = (int *)0x0;
LAB_0013bcfe:
      local_12c = (int *)((int)__s + iVar3 * 4);
      if ((1 < param_2) && (piVar6 == (int *)0x0)) {
        local_124 = FUN_00045540();
        if (!bVar23) goto LAB_0013b9c2;
        goto LAB_0013bd4a;
      }
    }
    else {
      if (*(char *)(unaff_EBP + 0x2847a + (*(ushort *)(*param_3 + 8) & 0x1f)) != '\x05')
      goto LAB_0013bce0;
      local_12c = (int *)((int)__s + iVar3 * 4);
      local_124 = FUN_00045540();
LAB_0013b9c2:
      local_98 = (int *)FUN_0010b320();
      if (local_98 == (int *)0x13) {
        piVar6 = local_98;
        if (*(int *)(param_1 + 0x28) == 0) {
          local_98 = (int *)0x10b;
          piVar6 = local_98;
        }
      }
      else {
LAB_0013bd4a:
        piVar6 = local_98;
        if (local_98 == (int *)0x0) {
          uVar7 = *param_4;
          uVar28 = param_4[1];
          uVar10 = *(uint *)(param_1 + 0x110);
          uVar20 = (uint)(uVar7 < *(uint *)(param_1 + 0x10c));
          if ((((SBORROW4(uVar28,uVar10) != SBORROW4(uVar28 - uVar10,uVar20)) ==
                (int)((uVar28 - uVar10) - uVar20) < 0) &&
              ((((uVar10 != uVar28 || *(uint *)(param_1 + 0x10c) != uVar7 ||
                 (*(int *)(param_1 + 0x118) != 0)) && (local_124 == *(int *)(param_1 + 0x114))) &&
               (*(int *)(param_1 + 0x108) <= *(int *)(param_1 + 0x104))))) ||
             (piVar6 = (int *)FUN_0013aff0(), piVar6 == (int *)0x0)) {
            *(int *)(param_1 + 0x114) = local_124;
            iVar3 = *(int *)(param_1 + 0x18);
            *(uint *)(param_1 + 0x110) = uVar28;
            *(uint *)(param_1 + 0x10c) = uVar7;
            *(undefined4 *)(param_1 + 0x118) = 0;
            iVar4 = 0;
            piVar6 = local_98;
            if (0 < iVar3) {
              do {
                if (*(char *)(*(int *)(param_1 + 0x20) + iVar4) == '\0') {
                  FUN_0007f6d0();
                  piVar6 = (int *)FUN_001223f0(iVar4,(void *)((int)local_12c + iVar4 * 4));
                  if (piVar6 != (int *)0x0) break;
                  iVar3 = FUN_0007f360();
                  piVar6 = (int *)((int)local_12c + *(int *)(param_1 + 0x18) * 4);
                  *piVar6 = *piVar6 + iVar3;
                  iVar3 = *(int *)(param_1 + 0x18);
                }
                iVar18 = iVar4 + 2;
                iVar4 = iVar4 + 1;
                piVar6 = local_98;
              } while (iVar18 <= iVar3);
            }
          }
        }
      }
      local_98 = piVar6;
      if (*(char *)(param_1 + 0xea) != '\0') {
        FUN_00111bd0();
      }
      local_94 = 1;
    }
    if (*(char *)(param_1 + 0xe8) != '\0') {
      FUN_00111db0(__s,local_94);
    }
  }
LAB_0013bb29:
  if (*(int *)(unaff_EBP + 0x7fb7a) == 0) {
    (**(code **)(unaff_EBP + 0x7fbaa))(__s);
    uVar5 = *(undefined4 *)(param_1 + 0xf8);
  }
  else {
    if (*(int *)(unaff_EBP + 0x8155e) != 0) {
      (**(code **)(unaff_EBP + 0x7fbd6))(*(int *)(unaff_EBP + 0x8155e));
    }
    iVar3 = (**(code **)(unaff_EBP + 0x7fbb2))(__s);
    *(int *)(unaff_EBP + 0x8159e) = *(int *)(unaff_EBP + 0x8159e) + -1;
    *(int *)(unaff_EBP + 0x8157a) = *(int *)(unaff_EBP + 0x8157a) - iVar3;
    (**(code **)(unaff_EBP + 0x7fbaa))(__s);
    if (*(int *)(unaff_EBP + 0x8155e) == 0) {
      uVar5 = *(undefined4 *)(param_1 + 0xf8);
    }
    else {
      (**(code **)(unaff_EBP + 0x7fbde))(*(int *)(unaff_EBP + 0x8155e));
      uVar5 = *(undefined4 *)(param_1 + 0xf8);
    }
  }
  goto LAB_0013ba95;
LAB_0013d4fe:
  FUN_000c0450(local_8c);
  uVar5 = *(undefined4 *)(param_1 + 0xf8);
  local_f0 = piVar6;
  goto LAB_0013ba71;
LAB_0013d234:
  iVar4 = FUN_000e7e00(uVar5);
  if (iVar4 == 100) {
    FUN_0004c5d0();
    uVar27 = FUN_00045540();
    iVar18 = (int)((ulonglong)uVar27 >> 0x20);
    uVar7 = (uint)uVar27;
    FUN_0004c6c0();
    iVar4 = *(int *)(param_1 + 0x18);
    if (*(int *)(param_1 + 0x2c) == 0) {
      uVar28 = 0;
      iVar9 = 0;
    }
    else {
      FUN_0004c5d0();
      uVar28 = FUN_00045540();
      FUN_0004c6c0();
      iVar9 = (int)uVar28 >> 0x1f;
      iVar4 = *(int *)(param_1 + 0x18);
    }
    uVar10 = uVar7 * 9 + uVar28;
    iVar18 = (iVar18 << 3 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar7 * 8,uVar7) + iVar9 +
             (uint)CARRY4(uVar7 * 9,uVar28);
    uVar7 = uVar10 * 9;
    iVar18 = iVar18 + (iVar18 * 8 | uVar10 >> 0x1d) + (uint)CARRY4(uVar10,uVar10 * 8);
    uVar5 = local_8c;
    if (0 < iVar4) {
      local_114 = 0;
      iVar9 = *(int *)(param_1 + 0x20);
      do {
        local_10c = local_114 + 1;
        if (*(char *)(iVar9 + local_114) == '\0') {
          uVar28 = (uint)((ulonglong)uVar7 * 9);
          local_dc = uVar28 + local_114;
          local_d8 = (int)((ulonglong)uVar7 * 9 >> 0x20) + iVar18 * 9 + ((int)local_114 >> 0x1f) +
                     (uint)CARRY4(uVar28,local_114);
          local_e4 = local_114 + uVar10 * 0x51;
          local_e0 = ((int)local_114 >> 0x1f) +
                     (iVar18 * 8 | uVar7 >> 0x1d) + iVar18 + (uint)CARRY4(uVar10 * 0x48,uVar7) +
                     (uint)CARRY4(local_114,uVar10 * 0x51);
          while( true ) {
            FUN_0004c5d0();
            FUN_0007f6d0();
            FUN_0004c6c0();
            FUN_0004c5d0();
            uVar5 = FUN_0007f360();
            FUN_0004c6c0();
            local_88 = 0;
            piVar6 = (int *)FUN_0003ed50(uVar5,&local_88);
            if (piVar6 == (int *)0x0) {
              while( true ) {
                local_7c[0] = 0;
                local_7c[2] = 0;
                local_68 = (int *)0x0;
                local_58 = (int *)0x0;
                piVar6 = (int *)(**(code **)(iVar3 + 0x14))
                                          (local_88,&local_84,local_7c,local_7c + 2,&local_68,
                                           &local_58);
                if (piVar6 != (int *)0x0) break;
                puVar14 = (undefined1 *)((int)local_58 + local_e4) + local_e4 * 8;
                uVar28 = ((int)local_58 >> 0x1f) + local_e0 + (uint)CARRY4((uint)local_58,local_e4)
                         + (local_e0 << 3 | local_e4 >> 0x1d) +
                         (uint)CARRY4((int)local_58 + local_e4,local_e4 * 8);
                if (0 < (int)local_7c[0]) {
                  pcVar15 = local_84;
                  do {
                    uVar11 = (uint)*pcVar15;
                    uVar12 = (int)puVar14 * 8;
                    uVar20 = (uint)puVar14 >> 0x1d;
                    uVar13 = uVar12 + uVar11;
                    bVar23 = CARRY4((uint)puVar14,uVar13);
                    puVar14 = puVar14 + uVar13;
                    uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar11 >> 0x1f) +
                                      (uint)CARRY4(uVar12,uVar11) + (uint)bVar23;
                    pcVar15 = pcVar15 + 1;
                  } while (local_84 + local_7c[0] != pcVar15);
                }
                local_ec = local_ec ^ (uint)puVar14;
                local_e8 = local_e8 ^ uVar28;
                if (1 < *(int *)(param_1 + 0xfc)) {
                  piVar6 = (int *)(*(int *)(param_1 + 0x100) + 0x18);
                  local_12c = (int *)((undefined1 *)((int)local_58 + local_dc) + local_dc * 8);
                  local_128 = ((int)local_58 >> 0x1f) + local_d8 +
                              (uint)CARRY4((uint)local_58,local_dc) +
                              (local_d8 << 3 | local_dc >> 0x1d) +
                              (uint)CARRY4((int)local_58 + local_dc,local_dc * 8);
                  do {
                    iVar4 = *piVar6;
                    if (iVar4 <= (int)local_7c[0]) {
                      puVar14 = (undefined1 *)((int)local_12c + 0x51);
                      uVar28 = local_128 + (uint)((undefined1 *)0xffffffae < local_12c);
                      if (0 < iVar4) {
                        pcVar15 = local_84;
                        do {
                          uVar13 = (uint)*pcVar15;
                          uVar11 = (int)puVar14 * 8;
                          uVar20 = (uint)puVar14 >> 0x1d;
                          uVar12 = uVar11 + uVar13;
                          bVar23 = CARRY4((uint)puVar14,uVar12);
                          puVar14 = puVar14 + uVar12;
                          uVar28 = uVar28 + (uVar28 << 3 | uVar20) + ((int)uVar13 >> 0x1f) +
                                            (uint)CARRY4(uVar11,uVar13) + (uint)bVar23;
                          pcVar15 = pcVar15 + 1;
                        } while (local_84 + iVar4 != pcVar15);
                      }
                      local_ec = local_ec ^ (uint)puVar14;
                      local_e8 = local_e8 ^ uVar28;
                    }
                    piVar6 = piVar6 + 6;
                    bVar23 = (undefined1 *)0xffffffae < local_12c;
                    local_12c = (int *)((int)local_12c + 0x51);
                    local_128 = local_128 + (uint)bVar23;
                  } while ((int *)(*(int *)(param_1 + 0x100) + *(int *)(param_1 + 0xfc) * 0x18) !=
                           piVar6);
                }
              }
            }
            if (local_88 != 0) {
              (**(code **)(iVar3 + 0x10))(local_88);
            }
            if (piVar6 != (int *)0x65) goto LAB_0013d4fe;
            iVar4 = *(int *)(param_1 + 0x18);
            uVar5 = local_8c;
            if (iVar4 <= (int)local_10c) goto LAB_0013d234;
            bVar23 = 0xfffffffe < local_dc;
            local_dc = local_dc + 1;
            local_d8 = local_d8 + (uint)bVar23;
            iVar9 = *(int *)(param_1 + 0x20);
            uVar28 = local_10c;
            bVar23 = 0xfffffffe < local_e4;
            local_e4 = local_e4 + 1;
            local_e0 = local_e0 + (uint)bVar23;
            if (*(char *)(iVar9 + local_10c) != '\0') break;
            local_10c = local_10c + 1;
            local_114 = uVar28;
          }
          local_10c = local_114 + 2;
        }
        local_114 = local_10c;
      } while ((int)local_114 < iVar4);
    }
    goto LAB_0013d234;
  }
  FUN_000c0450(local_8c);
  if (local_e8 == local_b4 && local_ec == local_d0) goto LAB_0013c0e0;
  local_f0 = (int *)0x10b;
  uVar5 = *(undefined4 *)(param_1 + 0xf8);
LAB_0013ba71:
  local_98 = local_f0;
LAB_0013ba95:
  FUN_000c0610(uVar5);
  *(undefined4 *)(param_1 + 0xf8) = 0;
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00153870();
  }
  return local_98;
}

